struct nbft_info - The parsed NBFT table data.
@filename: Path to the NBFT table.
@raw_nbft: The original NBFT table contents.
@raw_nbft_size: Size of @raw_nbft.
@host: The Host Descriptor (should match other NBFTs).
@hfi_list: The HFI Descriptor List (null-terminated array).
@security_list: The Security Profile Descriptor List (null-terminated array).
@discovery_list: The Discovery Descriptor List (null-terminated array).
@subsystem_ns_list: The SSNS Descriptor List (null-terminated array).
struct nbft_info_discovery - Discovery Descriptor
@index: The number of this Discovery Descriptor in the Discovery
Descriptor List.
@security: The Security Profile Descriptor, see &struct nbft_info_security.
@hfi: The HFI Descriptor associated with this Discovery Descriptor.
See &struct nbft_info_hfi.
@uri: A URI which indicates an NVMe Discovery controller associated
with this Discovery Descriptor.
@nqn: An NVMe Discovery controller NQN.
struct nbft_info_hfi - Host Fabric Interface (HFI) Descriptor
@index: HFI Descriptor Index: indicates the number of this HFI Descriptor
in the Host Fabric Interface Descriptor List.
@transport: Transport Type string (e.g. ‘tcp’).
@tcp_info: The HFI Transport Info Descriptor, see &struct nbft_info_hfi_info_tcp.
struct nbft_info_hfi_info_tcp - HFI Transport Info Descriptor - NVMe/TCP
@pci_sbdf: PCI Express Routing ID for the HFI Transport Function.
@mac_addr: MAC Address: The MAC address of this HFI,
in EUI-48TM format.
@vlan: The VLAN identifier if the VLAN is associated with
this HFI, as defined in IEEE 802.1q-2018 or zeroes
if no VLAN is associated with this HFI.
@ip_origin: The source of Ethernet L3 configuration information
used by the driver or 0 if not used.
@ipaddr: The IPv4 or IPv6 address of this HFI.
@subnet_mask_prefix: The IPv4 or IPv6 subnet mask in CIDR routing prefix
notation.
@gateway_ipaddr: The IPv4 or IPv6 address of the IP gateway for this
HFI or zeroes if no IP gateway is specified.
@route_metric: The cost value for the route indicated by this HFI.
@primary_dns_ipaddr: The IPv4 or IPv6 address of the Primary DNS server
for this HFI.
@secondary_dns_ipaddr: The IPv4 or IPv6 address of the Secondary DNS server
for this HFI.
@dhcp_server_ipaddr: The IPv4 or IPv6 address of the DHCP server used
to assign this HFI address.
@host_name: The Host Name string.
@this_hfi_is_default_route: If True, then the BIOS utilized this interface
described by HFI to be the default route with highest
priority. If False, then routes are local to their
own scope.
@dhcp_override: If True, then HFI information was populated
by consuming the DHCP on this interface. If False,
then the HFI information was set administratively
by a configuration interface to the driver and
pre-OS envrionment.
struct nbft_info_host - Host Descriptor
@id: Host ID (raw UUID, length = 16 bytes).
@nqn: Host NQN.
@host_id_configured: HostID Configured Flag: value of True indicates that @id
contains administratively-configured value, or driver
default value if False.
@host_nqn_configured: Host NQN Configured Flag: value of True indicates that
@nqn contains administratively-configured value,
or driver default value if False.
@primary: Primary Administrative Host Descriptor, see
&enum nbft_info_primary_admin_host_flag.
struct nbft_info_security - Security Profile Descriptor
@index: The number of this Security Profile Descriptor in the Security
Profile Descriptor List.
struct nbft_info_subsystem_ns - Subsystem Namespace (SSNS) info
@index: SSNS Descriptor Index in the descriptor list.
@discovery: Primary Discovery Controller associated with
this SSNS Descriptor.
@security: Security Profile Descriptor associated with
this namespace.
@num_hfis: Number of HFIs.
@hfis: List of HFIs associated with this namespace.
Includes the primary HFI at the first position
and all secondary HFIs. This array is null-terminated.
@transport: Transport Type string (e.g. ‘tcp’).
@traddr: Subsystem Transport Address.
@trsvcid: Subsystem Transport Service Identifier.
@subsys_port_id: The Subsystem Port ID.
@nsid: The Namespace ID of this descriptor or when @nid
should be used instead.
@nid_type: Namespace Identifier Type, see &enum nbft_info_nid_type.
@nid: The Namespace Identifier value.
@subsys_nqn: Subsystem and Namespace NQN.
@pdu_header_digest_required: PDU Header Digest (HDGST) Flag: the use of NVM Header
Digest Enabled is required.
@data_digest_required: Data Digest (DDGST) Flag: the use of NVM Data Digest
Enabled is required.
@controller_id: Controller ID (SSNS Extended Information Descriptor):
The controller ID associated with the Admin Queue
or 0 if not supported.
@asqsz: Admin Submission Queue Size (SSNS Extended Information
Descriptor) or 0 if not supported.
@dhcp_root_path_string: DHCP Root Path Override string (SSNS Extended
Information Descriptor).
@discovered: Indicates that this namespace was acquired
through discovery.
@unavailable: Namespace is unavailable as indicated by
the pre-OS driver.
struct nvme_ana_group_desc - ANA Group Descriptor
@grpid: ANA group id
@nnsids: Number of namespaces in @nsids
@chgcnt: Change counter
@state: ANA state
@rsvd17: Reserved
@nsids: List of namespaces
struct nvme_ana_log - Asymmetric Namespace Access Log
@chgcnt: Change Count
@ngrps: Number of ANA Group Descriptors
@rsvd10: Reserved
@descs: ANA Group Descriptor
struct nvme_ave_discover_log - AVE Discovery Log
@genctr: Generation Counter
@numrec: Number of Records
@recfmt: Record Format
@rsvd18: Reserved
@tadlpl: Total AVE Discovery Log Page Length
@rsvd24: Reserved
@adlpe: AVE Discovery Log Page Entry List
struct nvme_ave_discover_log_entry - AVE Discovery Log Entry
@tel: Total Entry Length
@avenqn: AVE NQN
@numatr: Number of AVE Transport Records
@rsvd229: Reserved
@atr: AVE Transport Record List
struct nvme_ave_tr_record - AVE Transport Record
@aveadrfam: AVE Address Family
@rsvd1: Reserved
@avetrsvcid: AVE Transport Service Identifier
@avetraddr: AVE Transport Address
struct nvme_capacity_mgmt_args - Arguments for the NVMe Capacity Management command
@result: If successful, the CQE dword0 value
@args_size: Size of &struct nvme_capacity_mgmt_args
@fd: File descriptor of nvme device
@cdw11: Least significant 32 bits of the capacity in bytes of the
Endurance Group or NVM Set to be created
@cdw12: Most significant 32 bits of the capacity in bytes of the
Endurance Group or NVM Set to be created
@timeout: Timeout in ms
@element_id: Value specific to the value of the Operation field
@op: Operation to be performed by the controller
struct nvme_channel_config_desc - Channel Configuration Descriptor
@chanid: Channel Identifier
@chmus: Number Channel Media Units
@mu_config_desc: Channel Unit config descriptors.
See @struct nvme_media_unit_config_desc
struct nvme_copy_args - Arguments for the NVMe Copy command
@sdlba: Start destination LBA
@result: The command completion result from CQE dword0
@copy: Range description
@args_size: Size of &struct nvme_copy_args
@fd: File descriptor of the nvme device
@timeout: Timeout in ms
@nsid: Namespace identifier
@ilbrt: Initial logical block reference tag
@lr: Limited retry
@fua: Force unit access
@nr: Number of ranges
@dspec: Directive specific value
@lbatm: Logical block application tag mask
@lbat: Logical block application tag
@prinfor: Protection information field for read
@prinfow: Protection information field for write
@dtype: Directive type
@format: Descriptor format
@ilbrt_u64: Initial logical block reference tag - 8 byte
version required for enhanced protection info
struct nvme_dev_self_test_args - Arguments for the NVMe Device Self Test command
@result: The command completion result from CQE dword0
@args_size: Size of &struct nvme_dev_self_test_args
@fd: File descriptor of nvme device
@nsid: Namespace ID to test
@stc: Self test code, see &enum nvme_dst_stc
@timeout: Timeout in ms
struct nvme_dim_args - Arguments for the Discovery Information Management (DIM) command
@result: Set on completion to the command’s CQE DWORD 0 controller response.
@data: Pointer to the DIM data
@args_size: Length of the structure
@fd: File descriptor of nvme device
@timeout: Timeout in ms
@data_len: Length of @data
@tas: Task field of the Command Dword 10 (cdw10)
struct nvme_directive_recv_args - Arguments for the NVMe Directive Receive command
@result: If successful, the CQE dword0 value
@data: Userspace address of data payload
@args_size: Size of &struct nvme_directive_recv_args
@fd: File descriptor of nvme device
@timeout: Timeout in ms
@nsid: Namespace ID, if applicable
@doper: Directive send operation, see &enum nvme_directive_send_doper
@dtype: Directive type, see &enum nvme_directive_dtype
@cdw12: Directive specific command dword12
@data_len: Length of data payload in bytes
@dspec: Directive specific field
struct nvme_directive_send_args - Arguments for the NVMe Directive Send command
@result: If successful, the CQE dword0 value
@data: Data payload to be send
@args_size: Size of &struct nvme_directive_send_args
@fd: File descriptor of nvme device
@timeout: Timeout in ms
@nsid: Namespace ID, if applicable
@doper: Directive send operation, see &enum nvme_directive_send_doper
@dtype: Directive type, see &enum nvme_directive_dtype
@cdw12: Directive specific command dword12
@data_len: Length of data payload in bytes
@dspec: Directive specific field
struct nvme_dsm_args - Arguments for the NVMe Dataset Management command
@result: The command completion result from CQE dword0
@dsm: The data set management attributes
@args_size: Size of &struct nvme_dsm_args
@fd: File descriptor of nvme device
@timeout: Timeout in ms
@nsid: Namespace identifier
@attrs: DSM attributes, see &enum nvme_dsm_attributes
@nr_ranges: Number of block ranges in the data set management attributes
struct nvme_end_grp_chan_desc - Endurance Group Channel Configuration Descriptor
@egchans: Number of Channels
@chan_config_desc: Channel config descriptors.
See @struct nvme_channel_config_desc
struct nvme_endurance_group_log - Endurance Group Information Log
@critical_warning: Critical Warning
@endurance_group_features: Endurance Group Features
@rsvd2: Reserved
@avl_spare: Available Spare
@avl_spare_threshold: Available Spare Threshold
@percent_used: Percentage Used
@domain_identifier: Domain Identifier
@rsvd8: Reserved
@endurance_estimate: Endurance Estimate
@data_units_read: Data Units Read
@data_units_written: Data Units Written
@media_units_written: Media Units Written
@host_read_cmds: Host Read Commands
@host_write_cmds: Host Write Commands
@media_data_integrity_err: Media and Data Integrity Errors
@num_err_info_log_entries: Number of Error Information Log Entries
@total_end_grp_cap: Total Endurance Group Capacity
@unalloc_end_grp_cap: Unallocated Endurance Group Capacity
@rsvd192: Reserved
struct nvme_eom_lane_desc - EOM Lane Descriptor
@rsvd0: Reserved
@mstatus: Measurement Status
@lane: Lane number
@eye: Eye number
@top: Absolute number of rows from center to top edge of eye
@bottom: Absolute number of rows from center to bottom edge of eye
@left: Absolute number of rows from center to left edge of eye
@right: Absolute number of rows from center to right edge of eye
@nrows: Number of Rows
@ncols: Number of Columns
@edlen: Eye Data Length
@rsvd18: Reserved
@eye_desc: Printable Eye, Eye Data, and any Padding
struct nvme_error_log_page - Error Information Log Entry (Log Identifier 01h)
@error_count: Error Count: a 64-bit incrementing error count,
indicating a unique identifier for this error. The error
count starts at %1h, is incremented for each unique error
log entry, and is retained across power off conditions.
A value of %0h indicates an invalid entry; this value
is used when there are lost entries or when there are
fewer errors than the maximum number of entries the
controller supports. If the value of this field is
%FFFFFFFFh, then the field shall be set to 1h when
incremented (i.e., rolls over to %1h). Prior to NVMe
1.4, processing of incrementing beyond %FFFFFFFFh is
unspecified.
@sqid: Submission Queue ID: indicates the Submission Queue
Identifier of the command that the error information is
associated with. If the error is not specific to
a particular command, then this field shall be set to
%FFFFh.
@cmdid: Command ID: indicates the Command Identifier of the
command that the error is associated with. If the error
is not specific to a particular command, then this field
shall be set to %FFFFh.
@status_field: Bits 15-1: Status Field: indicates the Status Field for
the command that completed. If the error is not specific
to a particular command, then this field reports the most
applicable status value.
Bit 0: Phase Tag: may indicate the Phase Tag posted for
the command.
@parm_error_location: Parameter Error Location: indicates the byte and bit of
the command parameter that the error is associated with,
if applicable. If the parameter spans multiple bytes or
bits, then the location indicates the first byte and bit
of the parameter.
Bits 10-8: Bit in command that contained the error.
Valid values are 0 to 7.
Bits 7-0: Byte in command that contained the error.
Valid values are 0 to 63.
@lba: LBA: This field indicates the first LBA that experienced
the error condition, if applicable.
@nsid: Namespace: This field indicates the NSID of the namespace
that the error is associated with, if applicable.
@vs: Vendor Specific Information Available: If there is
additional vendor specific error information available,
this field provides the log page identifier associated
with that page. A value of %0h indicates that no additional
information is available. Valid values are in the range
of %80h to %FFh.
@trtype: Transport Type (TRTYPE): indicates the Transport Type of
the transport associated with the error. The values in
this field are the same as the TRTYPE values in the
Discovery Log Page Entry. If the error is not transport
related, this field shall be cleared to %0h. If the error
is transport related, this field shall be set to the type
of the transport - see &enum nvme_trtype.
@csi: Command Set Indicator: This field contains command set
indicator for the command that the error is associated
with.
@opcode: Opcode: This field contains opcode for the command that
the error is associated with.
@cs: Command Specific Information: This field contains command
specific information. If used, the command definition
specifies the information returned.
@trtype_spec_info: Transport Type Specific Information
@rsvd: Reserved: [62:42]
@log_page_version: This field shall be set to 1h. If set, @csi and @opcode
will have valid values.
struct nvme_fabrics_config - Defines all linux nvme fabrics initiator options
@host_traddr: Host transport address
@host_iface: Host interface name
@queue_size: Number of IO queue entries
@nr_io_queues: Number of controller IO queues to establish
@reconnect_delay: Time between two consecutive reconnect attempts.
@ctrl_loss_tmo: Override the default controller reconnect attempt timeout in seconds
@fast_io_fail_tmo: Set the fast I/O fail timeout in seconds.
@keep_alive_tmo: Override the default keep-alive-timeout to this value in seconds
@nr_write_queues: Number of queues to use for exclusively for writing
@nr_poll_queues: Number of queues to reserve for polling completions
@tos: Type of service
@keyring: Keyring to store and lookup keys
@tls_key: TLS PSK for the connection
@tls_configured_key: TLS PSK for connect command for the connection
@duplicate_connect: Allow multiple connections to the same target
@disable_sqflow: Disable controller sq flow control
@hdr_digest: Generate/verify header digest (TCP)
@data_digest: Generate/verify data digest (TCP)
@tls: Start TLS on the connection (TCP)
@concat: Enable secure concatenation (TCP)
struct nvme_fabrics_uri - Parsed URI structure
@scheme: Scheme name (typically ‘nvme’)
@protocol: Optional protocol/transport (e.g. ‘tcp’)
@userinfo: Optional user information component of the URI authority
@host: Host transport address
@port: The port subcomponent or 0 if not specified
@path_segments: NULL-terminated array of path segments
@query: Optional query string component (separated by ‘?’)
@fragment: Optional fragment identifier component (separated by ‘#’)
struct nvme_fdp_config_desc - FDP Configuration Descriptor
@size: Descriptor size
@fdpa: FDP Attributes (&enum nvme_fdp_config_fdpa)
@vss: Vendor Specific Size
@nrg: Number of Reclaim Groups
@nruh: Number of Reclaim Unit Handles
@maxpids: Max Placement Identifiers
@nnss: Number of Namespaces Supported
@runs: Reclaim Unit Nominal Size
@erutl: Estimated Reclaim Unit Time Limit
@rsvd28: Reserved
@ruhs: Reclaim Unit Handle descriptors (&struct nvme_fdp_ruh_desc)
struct nvme_fdp_config_log - FDP Configurations Log Page
@n: Number of FDP Configurations
@version: Log page version
@rsvd3: Reserved
@size: Log page size in bytes
@rsvd8: Reserved
@configs: FDP Configuration descriptors (&struct nvme_fdp_config_desc)
struct nvme_fdp_event_realloc - Media Reallocated Event Type Specific Information
@flags: Event Type Specific flags (&enum nvme_fdp_event_realloc_flags)
@rsvd1: Reserved
@nlbam: Number of LBAs Moved
@lba: Logical Block Address
@rsvd12: Reserved
struct nvme_fdp_ruh_status - Reclaim Unit Handle Status
@rsvd0: Reserved
@nruhsd: Number of Reclaim Unit Handle Status Descriptors
@ruhss: Reclaim Unit Handle Status descriptors
struct nvme_fdp_ruh_status_desc - Reclaim Unit Handle Status Descriptor
@pid: Placement Identifier
@ruhid: Reclaim Unit Handle Identifier
@earutr: Estimated Active Reclaim Unit Time Remaining
@ruamw: Reclaim Unit Available Media Writes
@rsvd16: Reserved
struct nvme_fdp_ruhu_log - Reclaim Unit Handle Usage Log Page
@nruh: Number of Reclaim Unit Handles
@rsvd2: Reserved
@ruhus: Reclaim Unit Handle Usage descriptors
struct nvme_fdp_stats_log - FDP Statistics Log Page
@hbmw: Host Bytes with Metadata Written
@mbmw: Media Bytes with Metadata Written
@mbe: Media Bytes Erased
@rsvd48: Reserved
struct nvme_fdp_supported_event_desc - Supported FDP Event Descriptor
@evt: FDP Event Type
@evta: FDP Event Type Attributes (&enum nvme_fdp_supported_event_attributes)
struct nvme_feat_fdp_events_cdw11 - FDP Events Feature Command Dword 11
Deprecated: doesn’t support this struct.
Use NVME_FEAT_FDPE_*** definitions instead.
@phndl: Placement Handle
@noet: Number of FDP Event Types
@rsvd24: Reserved
struct nvme_firmware_slot - Firmware Slot Information Log
@afi: Active Firmware Info
@rsvd1: Reserved
@frs: Firmware Revision for Slot
@rsvd2: Reserved
struct nvme_format_nvm_args - Arguments for the Format Nvme Namespace command
@result: The command completion result from CQE dword0
@args_size: Size of &struct nvme_format_nvm_args
@fd: File descriptor of nvme device
@timeout: Set to override default timeout to this value in milliseconds;
useful for long running formats. 0 will use system default.
@nsid: Namespace ID to format
@mset: Metadata settings (extended or separated), true if extended
@pi: Protection information type
@pil: Protection information location (beginning or end), true if end
@ses: Secure erase settings
@lbaf: Logical block address format least significant 4 bits
@rsvd1: Reserved
@lbafu: Logical block address format most significant 2 bits
struct nvme_format_nvm_compln_event - Format NVM Completion Event Data
@nsid: Namespace Identifier
@smallest_fpi: Smallest Format Progress Indicator
@format_nvm_status: Format NVM Status
@compln_info: Completion Information
@status_field: Status Field
struct nvme_fw_commit_args - Arguments for the NVMe Firmware Commit command
@args_size: Size of &struct nvme_fw_commit_args
@fd: File descriptor of nvme device
@action: Action to use for the firmware image, see &enum nvme_fw_commit_ca
@timeout: Timeout in ms
@result: The command completion result from CQE dword0
@slot: Firmware slot to commit the downloaded image
@bpid: Set to true to select the boot partition id
struct nvme_fw_commit_event - Firmware Commit Event Data
@old_fw_rev: Old Firmware Revision
@new_fw_rev: New Firmware Revision
@fw_commit_action: Firmware Commit Action
@fw_slot: Firmware Slot
@sct_fw: Status Code Type for Firmware Commit Command
@sc_fw: Status Returned for Firmware Commit Command
@vndr_assign_fw_commit_rc: Vendor Assigned Firmware Commit Result Code
struct nvme_fw_download_args - Arguments for the NVMe Firmware Download command
@args_size: Size of &struct nvme_fw_download_args
@fd: File descriptor of nvme device
@result: The command completion result from CQE dword0
@timeout: Timeout in ms
@offset: Offset in the firmware data
@data: Userspace address of the firmware data
@data_len: Length of data in this command in bytes
struct nvme_get_discovery_args - Arguments for nvmf_get_discovery_wargs()
@c: Discovery controller
@args_size: Length of the structure
@max_retries: Number of retries in case of failure
@result: The command completion result from CQE dword0
@timeout: Timeout in ms (default: NVME_DEFAULT_IOCTL_TIMEOUT)
@lsp: Log specific field (See enum nvmf_log_discovery_lsp)
struct nvme_get_features_args - Arguments for the NVMe Admin Get Feature command
@args_size: Size of &struct nvme_get_features_args
@fd: File descriptor of nvme device
@result: The command completion result from CQE dword0
@timeout: Timeout in ms
@nsid: Namespace ID, if applicable
@sel: Select which type of attribute to return,
see &enum nvme_get_features_sel
@cdw11: Feature specific command dword11 field
@data_len: Length of feature data, if applicable, in bytes
@data: User address of feature data, if applicable
@fid: Feature identifier, see &enum nvme_features_id
@uuidx: UUID Index for differentiating vendor specific encoding
struct nvme_get_lba_status_args - Arguments for the NVMe Get LBA Status command
@lbas: Data payload to return status descriptors
@result: The command completion result from CQE dword0
@slba: Starting logical block address to check statuses
@args_size: Size of &struct nvme_get_lba_status_args
@fd: File descriptor of nvme device
@timeout: Timeout in ms
@nsid: Namespace ID to retrieve LBA status
@mndw: Maximum number of dwords to return
@atype: Action type mechanism to determine LBA status descriptors to
return, see &enum nvme_lba_status_atype
@rl: Range length from slba to perform the action
struct nvme_get_log_args - Arguments for the NVMe Admin Get Log command
@lpo: Log page offset for partial log transfers
@result: The command completion result from CQE dword0
@log: User space destination address to transfer the data
@args_size: Length of the structure
@fd: File descriptor of nvme device
@timeout: Timeout in ms
@lid: Log page identifier, see &enum nvme_cmd_get_log_lid for known
values
@len: Length of provided user buffer to hold the log data in bytes
@nsid: Namespace identifier, if applicable
@csi: Command set identifier, see &enum nvme_csi for known values
@lsi: Log Specific Identifier
@lsp: Log specific field
@uuidx: UUID selection, if supported
@rae: Retain asynchronous events
@ot: Offset Type; if set @lpo specifies the index into the list
of data structures, otherwise @lpo specifies the byte offset
into the log page.
struct nvme_get_property_args - Arguments for NVMe Get Property command
@value: Where the property’s value will be stored on success
@args_size: Size of &struct nvme_get_property_args
@fd: File descriptor of nvme device
@offset: Property offset from the base to retrieve
@timeout: Timeout in ms
struct nvme_host_ext_discover_log - Host Extended Discovery Log
@trtype: Transport Type
@adrfam: Address Family
@rsvd2: Reserved
@eflags: Entry Flags
@rsvd12: Reserved
@hostnqn: Host NVMe Qualified Name
@traddr: Transport Address
@tsas: Transport Specific Address Subtype
@tel: Total Entry Length
@numexat: Number of Extended Attributes
@rsvd1030: Reserved
@exat: Extended Attributes List
struct nvme_host_metadata - Host Metadata Data Structure
@ndesc: Number of metadata element descriptors
@rsvd1: Reserved
@descs: Metadata element descriptors
@descs_buf: Metadata element descriptor buffer
struct nvme_id_ctrl - Identify Controller data structure
@vid: PCI Vendor ID, the company vendor identifier that is assigned by
the PCI SIG.
@ssvid: PCI Subsystem Vendor ID, the company vendor identifier that is
assigned by the PCI SIG for the subsystem.
@sn: Serial Number in ASCII
@mn: Model Number in ASCII
@fr: Firmware Revision in ASCII, the currently active firmware
revision for the NVM subsystem
@rab: Recommended Arbitration Burst, reported as a power of two
@ieee: IEEE assigned Organization Unique Identifier
@cmic: Controller Multipath IO and Namespace Sharing Capabilities of
the controller and NVM subsystem. See &enum nvme_id_ctrl_cmic.
@mdts: Max Data Transfer Size is the largest data transfer size. The
host should not submit a command that exceeds this maximum data
transfer size. The value is in units of the minimum memory page
size (CAP.MPSMIN) and is reported as a power of two
@cntlid: Controller ID, the NVM subsystem unique controller identifier
associated with the controller.
@ver: Version, this field contains the value reported in the Version
register, or property (see &enum nvme_registers %NVME_REG_VS).
@rtd3r: RTD3 Resume Latency, the expected latency in microseconds to resume
from Runtime D3
@rtd3e: RTD3 Exit Latency, the typical latency in microseconds to enter
Runtime D3.
@oaes: Optional Async Events Supported, see @enum nvme_id_ctrl_oaes.
@ctratt: Controller Attributes, see @enum nvme_id_ctrl_ctratt.
@rrls: Read Recovery Levels. If a bit is set, then the corresponding
Read Recovery Level is supported. If a bit is cleared, then the
corresponding Read Recovery Level is not supported.
@bpcap: Boot Partition Capabilities, see &enum nvme_id_ctrl_bpcap.
@rsvd103: Reserved
@nssl: NVM Subsystem Shutdown Latency (NSSL). This field indicates the
typical latency in microseconds for an NVM Subsystem Shutdown to
complete.
@rsvd108: Reserved
@plsi: Power Loss Signaling Information (PLSI), see &enum nvme_id_ctrl_plsi
@cntrltype: Controller Type, see &enum nvme_id_ctrl_cntrltype
@fguid: FRU GUID, a 128-bit value that is globally unique for a given
Field Replaceable Unit
@crdt1: Controller Retry Delay time in 100 millisecond units if CQE CRD
field is 1
@crdt2: Controller Retry Delay time in 100 millisecond units if CQE CRD
field is 2
@crdt3: Controller Retry Delay time in 100 millisecond units if CQE CRD
field is 3
@crcap: Controller Reachability Capabilities (CRCAP), see
&enum nvme_id_ctrl_crcap
@rsvd135: Reserved
@nvmsr: NVM Subsystem Report, see &enum nvme_id_ctrl_nvmsr
@vwci: VPD Write Cycle Information, see &enum nvme_id_ctrl_vwci
@mec: Management Endpoint Capabilities, see &enum nvme_id_ctrl_mec
@oacs: Optional Admin Command Support,the optional Admin commands and
features supported by the controller, see &enum nvme_id_ctrl_oacs.
@acl: Abort Command Limit, the maximum number of concurrently
executing Abort commands supported by the controller. This is a
0’s based value.
@aerl: Async Event Request Limit, the maximum number of concurrently
outstanding Asynchronous Event Request commands supported by the
controller This is a 0’s based value.
@frmw: Firmware Updates indicates capabilities regarding firmware
updates. See &enum nvme_id_ctrl_frmw.
@lpa: Log Page Attributes, see &enum nvme_id_ctrl_lpa.
@elpe: Error Log Page Entries, the maximum number of Error Information
log entries that are stored by the controller. This field is a
0’s based value.
@npss: Number of Power States Supported, the number of NVM Express
power states supported by the controller, indicating the number
of valid entries in &struct nvme_id_ctrl.psd. This is a 0’s
based value.
@avscc: Admin Vendor Specific Command Configuration, see
&enum nvme_id_ctrl_avscc.
@apsta: Autonomous Power State Transition Attributes, see
&enum nvme_id_ctrl_apsta.
@wctemp: Warning Composite Temperature Threshold indicates
the minimum Composite Temperature field value (see &struct
nvme_smart_log.critical_comp_time) that indicates an overheating
condition during which controller operation continues.
@cctemp: Critical Composite Temperature Threshold, field indicates the
minimum Composite Temperature field value (see &struct
nvme_smart_log.critical_comp_time) that indicates a critical
overheating condition.
@mtfa: Maximum Time for Firmware Activation indicates the maximum time
the controller temporarily stops processing commands to activate
the firmware image, specified in 100 millisecond units. This
field is always valid if the controller supports firmware
activation without a reset.
@hmpre: Host Memory Buffer Preferred Size indicates the preferred size
that the host is requested to allocate for the Host Memory
Buffer feature in 4 KiB units.
@hmmin: Host Memory Buffer Minimum Size indicates the minimum size that
the host is requested to allocate for the Host Memory Buffer
feature in 4 KiB units.
@tnvmcap: Total NVM Capacity, the total NVM capacity in the NVM subsystem.
The value is in bytes.
@unvmcap: Unallocated NVM Capacity, the unallocated NVM capacity in the
NVM subsystem. The value is in bytes.
@rpmbs: Replay Protected Memory Block Support, see
&enum nvme_id_ctrl_rpmbs.
@edstt: Extended Device Self-test Time, if Device Self-test command is
supported (see &struct nvme_id_ctrl.oacs, %NVME_CTRL_OACS_SELF_TEST),
then this field indicates the nominal amount of time in one
minute units that the controller takes to complete an extended
device self-test operation when in power state 0.
@dsto: Device Self-test Options, see &enum nvme_id_ctrl_dsto.
@fwug: Firmware Update Granularity indicates the granularity and
alignment requirement of the firmware image being updated by the
Firmware Image Download command. The value is reported in 4 KiB
units. A value of 0h indicates no information on granularity is
provided. A value of FFh indicates no restriction
@kas: Keep Alive Support indicates the granularity of the Keep Alive
Timer in 100 millisecond units.
@hctma: Host Controlled Thermal Management Attributes, see
&enum nvme_id_ctrl_hctm.
@mntmt: Minimum Thermal Management Temperature indicates the minimum
temperature, in degrees Kelvin, that the host may request in the
Thermal Management Temperature 1 field and Thermal Management
Temperature 2 field of a Set Features command with the Feature
Identifier field set to %NVME_FEAT_FID_HCTM.
@mxtmt: Maximum Thermal Management Temperature indicates the maximum
temperature, in degrees Kelvin, that the host may request in the
Thermal Management Temperature 1 field and Thermal Management
Temperature 2 field of the Set Features command with the Feature
Identifier set to %NVME_FEAT_FID_HCTM.
@sanicap: Sanitize Capabilities, see &enum nvme_id_ctrl_sanicap
@hmminds: Host Memory Buffer Minimum Descriptor Entry Size indicates the
minimum usable size of a Host Memory Buffer Descriptor Entry in
4 KiB units.
@hmmaxd: Host Memory Maximum Descriptors Entries indicates the number of
usable Host Memory Buffer Descriptor Entries.
@nsetidmax: NVM Set Identifier Maximum, defines the maximum value of a valid
NVM Set Identifier for any controller in the NVM subsystem.
@endgidmax: Endurance Group Identifier Maximum, defines the maximum value of
a valid Endurance Group Identifier for any controller in the NVM
subsystem.
@anatt: ANA Transition Time indicates the maximum amount of time, in
seconds, for a transition between ANA states or the maximum
amount of time, in seconds, that the controller reports the ANA
change state.
@anacap: Asymmetric Namespace Access Capabilities, see
&enum nvme_id_ctrl_anacap.
@anagrpmax: ANA Group Identifier Maximum indicates the maximum value of a
valid ANA Group Identifier for any controller in the NVM
subsystem.
@nanagrpid: Number of ANA Group Identifiers indicates the number of ANA
groups supported by this controller.
@pels: Persistent Event Log Size indicates the maximum reportable size
for the Persistent Event Log.
@domainid: Domain Identifier indicates the identifier of the domain
that contains this controller.
@kpioc: Key Per I/O Capabilities (KPIOC), see &enum nvme_id_ctrl_kpioc
@rsvd359: Reserved
@mptfawr: Maximum Processing Time for Firmware Activation Without Reset
(MPTFAWR). This field shall indicate the estimated maximum time
in 100 ms units required by the controller to process a Firmware
Commit command that specifies a value of 011b in the Commit
Action field
@rsvd362: Reserved
@megcap: Max Endurance Group Capacity indicates the maximum capacity
of a single Endurance Group.
@tmpthha: Temperature Threshold Hysteresis Attributes
@rsvd385: Reserved
@cqt: Command Quiesce Time (CQT). his field indicates the expected
worst-case time in 1 millisecond units for the controller to
quiesce all outstanding commands after a Keep Alive Timeout or
other communication loss.
@rsvd388: Reserved
@sqes: Submission Queue Entry Size, see &enum nvme_id_ctrl_sqes.
@cqes: Completion Queue Entry Size, see &enum nvme_id_ctrl_cqes.
@maxcmd: Maximum Outstanding Commands indicates the maximum number of
commands that the controller processes at one time for a
particular queue.
@nn: Number of Namespaces indicates the maximum value of a valid
nsid for the NVM subsystem. If the MNAN (&struct nvme_id_ctrl.mnan
field is cleared to 0h, then this field also indicates the
maximum number of namespaces supported by the NVM subsystem.
@oncs: Optional NVM Command Support, see &enum nvme_id_ctrl_oncs.
@fuses: Fused Operation Support, see &enum nvme_id_ctrl_fuses.
@fna: Format NVM Attributes, see &enum nvme_id_ctrl_fna.
@vwc: Volatile Write Cache, see &enum nvme_id_ctrl_vwc.
@awun: Atomic Write Unit Normal indicates the size of the write
operation guaranteed to be written atomically to the NVM across
all namespaces with any supported namespace format during normal
operation. This field is specified in logical blocks and is a
0’s based value.
@awupf: Atomic Write Unit Power Fail indicates the size of the write
operation guaranteed to be written atomically to the NVM across
all namespaces with any supported namespace format during a
power fail or error condition. This field is specified in
logical blocks and is a 0’s based value.
@icsvscc: NVM Vendor Specific Command Configuration, see
&enum nvme_id_ctrl_nvscc.
@nwpc: Namespace Write Protection Capabilities, see
&enum nvme_id_ctrl_nwpc.
@acwu: Atomic Compare & Write Unit indicates the size of the write
operation guaranteed to be written atomically to the NVM across
all namespaces with any supported namespace format for a Compare
and Write fused operation. This field is specified in logical
blocks and is a 0’s based value.
@ocfs: Optional Copy Formats Supported, each bit n means controller
supports Copy Format n.
@sgls: SGL Support, see &enum nvme_id_ctrl_sgls
@mnan: Maximum Number of Allowed Namespaces indicates the maximum
number of namespaces supported by the NVM subsystem.
@maxdna: Maximum Domain Namespace Attachments indicates the maximum
of the sum of the number of namespaces attached to each I/O
controller in the Domain.
@maxcna: Maximum I/O Controller Namespace Attachments indicates the
maximum number of namespaces that are allowed to be attached to
this I/O controller.
@oaqd: Optimal Aggregated Queue Depth indicates the recommended maximum
total number of outstanding I/O commands across all I/O queues
on the controller for optimal operation.
@rhiri: Recommended Host-Initiated Refresh Interval (RHIRI). If the
Host-Initiated Refresh capability is supported, then this field
indicates the recommended time interval in days from last power
down to the time at which the host should initiate the
Host-Initiated Refresh operation. If this field is cleared to
0h, then this field is not reported.
@hirt: Host-Initiated Refresh Time (HIRT). If the Host-Initiated
Refresh capability is supported, then this field indicates the
nominal amount of time in minutes that the controller takes to
complete the Host-Initiated Refresh operation. If this field is
cleared to 0h, then this field is not reported.
@cmmrtd: Controller Maximum Memory Range Tracking Descriptors indicates
the maximum number of Memory Range Tracking Descriptors the
controller supports.
@nmmrtd: NVM Subsystem Maximum Memory Range Tracking Descriptors
indicates the maximum number of Memory Range Tracking Descriptors
the NVM subsystem supports.
@minmrtg: Minimum Memory Range Tracking Granularity indicates the minimum
value supported in the Requested Memory Range Tracking
Granularity (RMRTG) field of the Track Memory Ranges data
structure.
@maxmrtg: Maximum Memory Range Tracking Granularity indicates the maximum
value supported in the Requested Memory Range Tracking
Granularity (RMRTG) field of the Track Memory Ranges data
structure.
@trattr: Tracking Attributes indicates supported attributes for the Track Send
command and Track Receive command. see &enum nvme_id_ctrl_trattr
@rsvd577: Reserved
@mcudmq: Maximum Controller User Data Migration Queues indicates the
maximum number of User Data Migration Queues supported by the
controller.
@mnsudmq: Maximum NVM Subsystem User Data Migration Queues indicates the
maximum number of User Data Migration Queues supported by the NVM
subsystem.
@mcmr: Maximum CDQ Memory Ranges indicates the maximum number of
memory ranges allowed to be specified by the PRP1 field of a
Controller Data Queue command.
@nmcmr: NVM Subsystem Maximum CDQ Memory Ranges indicates the maximum
number of memory ranges for all Controller Data Queues in the
NVM subsystem.
@mcdqpc: Maximum Controller Data Queue PRP Count indicates the maximum
number of PRPs allowed to be specified in the PRP list in the
Controller Data Queue command.
@rsvd588: Reserved
@subnqn: NVM Subsystem NVMe Qualified Name, UTF-8 null terminated string
@rsvd1024: Reserved
@ioccsz: I/O Queue Command Capsule Supported Size, defines the maximum
I/O command capsule size in 16 byte units.
@iorcsz: I/O Queue Response Capsule Supported Size, defines the maximum
I/O response capsule size in 16 byte units.
@icdoff: In Capsule Data Offset, defines the offset where data starts
within a capsule. This value is applicable to I/O Queues only.
@fcatt: Fabrics Controller Attributes, see &enum nvme_id_ctrl_fcatt.
@msdbd: Maximum SGL Data Block Descriptors indicates the maximum
number of SGL Data Block or Keyed SGL Data Block descriptors
that a host is allowed to place in a capsule. A value of 0h
indicates no limit.
@ofcs: Optional Fabric Commands Support, see &enum nvme_id_ctrl_ofcs.
@dctype: Discovery Controller Type (DCTYPE). This field indicates what
type of Discovery controller the controller is (see enum
nvme_id_ctrl_dctype)
@rsvd1807: Reserved
@psd: Power State Descriptors, see &struct nvme_id_psd.
@vs: Vendor Specific
struct nvme_id_independent_id_ns - Identify - I/O Command Set Independent Identify Namespace Data Structure
@nsfeat: common namespace features
@nmic: Namespace Multi-path I/O and Namespace
Sharing Capabilities
@rescap: Reservation Capabilities
@fpi: Format Progress Indicator
@anagrpid: ANA Group Identifier
@nsattr: Namespace Attributes
@rsvd9: reserved
@nvmsetid: NVM Set Identifier
@endgid: Endurance Group Identifier
@nstat: Namespace Status
@kpios: Key Per I/O Status
@maxkt: Maximum Key Tag
@rsvd18: Reserved
@rgrpid: Reachability Group Identifier
@rsvd24: Reserved
struct nvme_id_ns - Identify Namespace data structure
@nsze: Namespace Size indicates the total size of the namespace in
logical blocks. The number of logical blocks is based on the
formatted LBA size.
@ncap: Namespace Capacity indicates the maximum number of logical blocks
that may be allocated in the namespace at any point in time. The
number of logical blocks is based on the formatted LBA size.
@nuse: Namespace Utilization indicates the current number of logical
blocks allocated in the namespace. This field is smaller than or
equal to the Namespace Capacity. The number of logical blocks is
based on the formatted LBA size.
@nsfeat: Namespace Features, see &enum nvme_id_nsfeat.
@nlbaf: Number of LBA Formats defines the number of supported LBA data
size and metadata size combinations supported by the namespace
and the highest possible index to &struct nvme_id_ns.lbaf.
@flbas: Formatted LBA Size, see &enum nvme_id_ns_flbas.
@mc: Metadata Capabilities, see &enum nvme_id_ns_mc.
@dpc: End-to-end Data Protection Capabilities, see
&enum nvme_id_ns_dpc.
@dps: End-to-end Data Protection Type Settings, see
&enum nvme_id_ns_dps.
@nmic: Namespace Multi-path I/O and Namespace Sharing Capabilities, see
&enum nvme_id_ns_nmic.
@rescap: Reservation Capabilities, see &enum nvme_id_ns_rescap.
@fpi: Format Progress Indicator, see &enum nvme_nd_ns_fpi.
@dlfeat: Deallocate Logical Block Features, see &enum nvme_id_ns_dlfeat.
@nawun: Namespace Atomic Write Unit Normal indicates the
namespace specific size of the write operation guaranteed to be
written atomically to the NVM during normal operation.
@nawupf: Namespace Atomic Write Unit Power Fail indicates the
namespace specific size of the write operation guaranteed to be
written atomically to the NVM during a power fail or error
condition.
@nacwu: Namespace Atomic Compare & Write Unit indicates the namespace
specific size of the write operation guaranteed to be written
atomically to the NVM for a Compare and Write fused command.
@nabsn: Namespace Atomic Boundary Size Normal indicates the atomic
boundary size for this namespace for the NAWUN value. This field
is specified in logical blocks.
@nabo: Namespace Atomic Boundary Offset indicates the LBA on this
namespace where the first atomic boundary starts.
@nabspf: Namespace Atomic Boundary Size Power Fail indicates the atomic
boundary size for this namespace specific to the Namespace Atomic
Write Unit Power Fail value. This field is specified in logical
blocks.
@noiob: Namespace Optimal I/O Boundary indicates the optimal I/O boundary
for this namespace. This field is specified in logical blocks.
The host should construct Read and Write commands that do not
cross the I/O boundary to achieve optimal performance.
@nvmcap: NVM Capacity indicates the total size of the NVM allocated to
this namespace. The value is in bytes.
@npwg: Namespace Preferred Write Granularity indicates the smallest
recommended write granularity in logical blocks for this
namespace. This is a 0’s based value.
@npwa: Namespace Preferred Write Alignment indicates the recommended
write alignment in logical blocks for this namespace. This is a
0’s based value.
@npdg: Namespace Preferred Deallocate Granularity indicates the
recommended granularity in logical blocks for the Dataset
Management command with the Attribute - Deallocate bit.
@npda: Namespace Preferred Deallocate Alignment indicates the
recommended alignment in logical blocks for the Dataset
Management command with the Attribute - Deallocate bit
@nows: Namespace Optimal Write Size indicates the size in logical blocks
for optimal write performance for this namespace. This is a 0’s
based value.
@mssrl: Maximum Single Source Range Length indicates the maximum number
of logical blocks that may be specified in each valid Source Range
field of a Copy command.
@mcl: Maximum Copy Length indicates the maximum number of logical
blocks that may be specified in a Copy command.
@msrc: Maximum Source Range Count indicates the maximum number of Source
Range entries that may be used to specify source data in a Copy
command. This is a 0’s based value.
@kpios: Key Per I/O Status indicates namespace Key Per I/O capability status.
@nulbaf: Number of Unique Capability LBA Formats defines the number of
supported user data size and metadata size combinations supported
by the namespace that may not share the same capabilities. LBA
formats shall be allocated in order and packed sequentially.
@rsvd83: Reserved
@kpiodaag: Key Per I/O Data Access Alignment and Granularity indicates the
alignment and granularity in logical blocks that is required
for commands that support a KPIOTAG value in the CETYPE field.
@rsvd88: Reserved
@anagrpid: ANA Group Identifier indicates the ANA Group Identifier of the
ANA group of which the namespace is a member.
@rsvd96: Reserved
@nsattr: Namespace Attributes, see &enum nvme_id_ns_attr.
@nvmsetid: NVM Set Identifier indicates the NVM Set with which this
namespace is associated.
@endgid: Endurance Group Identifier indicates the Endurance Group with
which this namespace is associated.
@nguid: Namespace Globally Unique Identifier contains a 128-bit value
that is globally unique and assigned to the namespace when the
namespace is created. This field remains fixed throughout the
life of the namespace and is preserved across namespace and
controller operations
@eui64: IEEE Extended Unique Identifier contains a 64-bit IEEE Extended
Unique Identifier (EUI-64) that is globally unique and assigned
to the namespace when the namespace is created. This field
remains fixed throughout the life of the namespace and is
preserved across namespace and controller operations
@lbaf: LBA Format, see &struct nvme_lbaf.
@vs: Vendor Specific
struct nvme_id_psd - Power Management data structure
@mp: Maximum Power indicates the sustained maximum power consumed by the
NVM subsystem in this power state. The power in Watts is equal to
the value in this field multiplied by the scale specified in the Max
Power Scale bit (see &enum nvme_psd_flags). A value of 0 indicates
Maximum Power is not reported.
@rsvd2: Reserved
@flags: Additional decoding flags, see &enum nvme_psd_flags.
@enlat: Entry Latency indicates the maximum latency in microseconds
associated with entering this power state. A value of 0 indicates
Entry Latency is not reported.
@exlat: Exit Latency indicates the maximum latency in microseconds
associated with exiting this power state. A value of 0 indicates
Exit Latency is not reported.
@rrt: Relative Read Throughput indicates the read throughput rank
associated with this power state relative to others. The value in
this is less than the number of supported power states.
@rrl: Relative Read Latency indicates the read latency rank associated
with this power state relative to others. The value in this field is
less than the number of supported power states.
@rwt: Relative Write Throughput indicates write throughput rank associated
with this power state relative to others. The value in this field is
less than the number of supported power states
@rwl: Relative Write Latency indicates the write latency rank associated
with this power state relative to others. The value in this field is
less than the number of supported power states
@idlp: Idle Power indicates the typical power consumed by the NVM
subsystem over 30 seconds in this power state when idle.
@ips: Idle Power Scale indicates the scale for &struct nvme_id_psd.idlp,
see &enum nvme_psd_ps for decoding this field.
@rsvd19: Reserved
@actp: Active Power indicates the largest average power consumed by the
NVM subsystem over a 10 second period in this power state with
the workload indicated in the Active Power Workload field.
@apws: Bits 7-6: Active Power Scale(APS) indicates the scale for the &struct
nvme_id_psd.actp, see &enum nvme_psd_ps for decoding this value.
Bits 2-0: Active Power Workload(APW) indicates the workload
used to calculate maximum power for this power state.
See &enum nvme_psd_workload for decoding this field.
@epfrt: Emergency power fail recovery time
@fqvt: Forced quiescence vault time
@epfvt: Emergency power fail vault time
@epfr_fqv_ts: Bits 7-4: Forced quiescence vault time scale
Bits 3-0: Emergency power fail recovery time scale
@epfvts: Bits 3-0: Emergency power fail vault time scale
@rsvd28: Reserved
struct nvme_identify_args - Arguments for the NVMe Identify command
@result: The command completion result from CQE dword0
@data: User space destination address to transfer the data
@args_size: Size of &struct nvme_identify_args
@fd: File descriptor of nvme device
@timeout: Timeout in ms (0 for default timeout)
@cns: The Controller or Namespace structure, see @enum nvme_identify_cns
@csi: Command Set Identifier
@nsid: Namespace identifier, if applicable
@cntid: The Controller Identifier, if applicable
@cns_specific_id: Identifier that is required for a particular CNS value
@uuidx: UUID Index if controller supports this id selection method
struct nvme_io_args - Arguments for NVMe I/O commands
@slba: Starting logical block
@storage_tag: This filed specifies Variable Sized Expected Logical Block
Storage Tag (ELBST) or Logical Block Storage Tag (LBST)
@result: The command completion result from CQE dword0
@data: Pointer to user address of the data buffer
@metadata: Pointer to user address of the metadata buffer
@args_size: Size of &struct nvme_io_args
@fd: File descriptor of nvme device
@timeout: Timeout in ms
@nsid: Namespace ID
@data_len: Length of user buffer, @data, in bytes
@metadata_len:Length of user buffer, @metadata, in bytes
@nlb: Number of logical blocks to send (0’s based value)
@control: Command control flags, see &enum nvme_io_control_flags.
@apptag: This field specifies the Application Tag Mask expected value.
Used only if the namespace is formatted to use end-to-end
protection information.
@appmask: This field specifies the Application Tag expected value. Used
only if the namespace is formatted to use end-to-end protection
information.
@reftag: This field specifies the variable sized Expected Initial
Logical Block Reference Tag (EILBRT) or Initial Logical Block
Reference Tag (ILBRT). Used only if the namespace is formatted
to use end-to-end protection information.
@dspec: Directive specific value
@dsm: Data set management attributes, see &enum nvme_io_dsm_flags
@rsvd1: Reserved
@reftag_u64: This field specifies the variable sized Expected Initial
Logical Block Reference Tag (EILBRT) or Initial Logical Block
Reference Tag (ILBRT). It is the 8 byte version required for
enhanced protection information. Used only if the namespace is
formatted to use end-to-end protection information.
@sts: Storage tag size in bits, set by namespace Extended LBA Format
@pif: Protection information format, determines how variable sized
storage_tag and reftag are put into dwords 2, 3, and 14. Set by
namespace Extended LBA Format.
struct nvme_io_mgmt_recv_args - Arguments for the NVMe I/O Management Receive command
@data: Userspace address of the data
@args_size: Size of &struct nvme_io_mgmt_recv_args
@fd: File descriptor of nvme device
@nsid: Namespace identifier
@data_len: Length of @data
@timeout: Timeout in ms
@mos: Management Operation Specific
@mo: Management Operation
struct nvme_io_mgmt_send_args - Arguments for the NVMe I/O Management Send command
@data: Userspace address of the data
@args_size: Size of &struct nvme_io_mgmt_send_args
@fd: File descriptor of nvme device
@nsid: Namespace identifier
@data_len: Length of @data
@timeout: Timeout in ms
@mos: Management Operation Specific
@mo: Management Operation
struct nvme_lba_range_type_entry - LBA Range Type - Data Structure Entry
@type: Specifies the Type of the LBA range
@attributes: Specifies attributes of the LBA range
@rsvd2: Reserved
@slba: Starting LBA
@nlb: Number of Logical Blocks
@guid: Unique Identifier
@rsvd48: Reserved
struct nvme_lba_status - LBA Status Descriptor List
@nlsd: Number of LBA Status Descriptors
@cmpc: Completion Condition
@rsvd5: Reserved
@descs: LBA status descriptor Entry
struct nvme_lba_status_desc - LBA Status Descriptor Entry
@dslba: Descriptor Starting LBA
@nlb: Number of Logical Blocks
@rsvd12: Reserved
@status: Additional status about this LBA range
@rsvd14: Reserved
struct nvme_lba_status_log - LBA Status Information Log
@lslplen: LBA Status Log Page Length
@nlslne: Number of LBA Status Log Namespace Elements
@estulb: Estimate of Unrecoverable Logical Blocks
@rsvd12: Reserved
@lsgc: LBA Status Generation Counter
@elements: LBA Status Log Namespace Element List
struct nvme_lbaf - LBA Format Data Structure
@ms: Metadata Size indicates the number of metadata bytes provided per LBA
based on the LBA Data Size indicated.
@ds: LBA Data Size indicates the LBA data size supported, reported as a
power of two.
@rp: Relative Performance, see &enum nvme_lbaf_rp.
struct nvme_lbas_ns_element - LBA Status Log Namespace Element
@neid: Namespace Element Identifier
@nlrd: Number of LBA Range Descriptors
@ratype: Recommended Action Type. see @enum nvme_lba_status_atype
@rsvd8: Reserved
@lba_rd: LBA Range Descriptor
struct nvme_lm_cdq_args - Arguments for Controller Data Queue (CDQ) command
@result: Set on completion to the command’s CQE DWORD 0 controller response
@data: Pointer to data
@args_size: Length of structure
@fd: File descriptor of nvme device
@timeout: Timeout in ms
@mos: Management Operation Specific (MOS): This field is specific to the SEL type
@cntlid: Controller ID: For Create CDQ, specifies the target migratable controller
@cdqid: Controller Data Queue ID (CDQID): For Create CDQ, this field is the CDQID created
by the controller if no error is present. For Delete CDQ, this field is the CDQID
to delete.
@sel: Select (SEL): This field specifies the type of management operation to perform.
@sz_u8: For Create CDQ, specifies the size of CDQ, in dwords - 1 byte
@rsvd1: Reserved
@sz: For Create CDQ, specifies the size of CDQ, in dwords - 4 byte
struct nvme_lm_io_completion_queue_data - I/O Completion Queue data structure. Fields related to
the contents of Create I/O Completion Queue command that created an I/O Completion Queue.
struct nvme_lm_io_submission_queue_data - I/O Submission Queue data structure. Fields related to
the contents of Create I/O Submission Queue command that created an I/O Submission Queue.
struct nvme_lm_migration_recv_args - Arguments for the Migration Receive command
@offset: Offset: This field specifies the offset, in bytes, within the data available to be
returned and specifies the starting point for that data for what is actually
returned to the host.
@result: Set on completion to the command’s CQE DWORD 0 controller response
@data: Pointer to data
@args_size: Length of structure
@fd: File descriptor of nvme device
@timeout: Timeout in ms
@numd: Number of Dwords (NUMD): This field specifies the number of dwords to return. This
is a 0’s based value.
@mos: Management Operation Specific (MOS): This field is specific to the SEL type
@cntlid: Controller ID: This field specifies the identifier of the controller to which the
operation is performed.
@csuuidi: Controller State UUID Index (CSUUIDI): A non-zero value in this field specifies the
index to a specific entry in the Vendor Specific Controller State UUID Supported.
list of the Supported Controller State Formats data structure.
@sel: Select (SEL): This field specifies the type of management operation to perform
@uidx: UUID Index (UIDX): If this field is set to a non-zero value, then the value of this
field is the index of a UUID in the UUID List (refer to Figure 320) that is used by
the command.
@csuidxp: Controller State UUID Index Parameter (CSUIDXP): This field is vendor specific.
struct nvme_lm_migration_send_args - Arguments for the Migration Send command
@offset: Offset: This field specifies the offset, in bytes, within the data available to be
returned and specifies the starting point for that data for what is actually
returned to the host.
@result: Set on completion to the command’s CQE DWORD 0 controller response
@data: Pointer to data
@args_size: Length of structure
@fd: File descriptor of nvme device
@timeout: Timeout in ms
@numd: Number of Dwords (NUMD): This field specifies the number of dwords being transferred
@mos: Management Operation Specific (MOS): This field is specific to the SEL type
@cntlid: Controller ID: This field specifies the identifier of the controller to which the
operation is performed.
@csuuidi: Controller State UUID Index (CSUUIDI): A non-zero value in this field specifies the
index to a specific entry in the Vendor Specific Controller State UUID Supported.
list of the Supported Controller State Formats data structure.
@sel: Select (SEL): This field specifies the type of management operation to perform.
@uidx: UUID Index (UIDX): If this field is set to a non-zero value, then the value of this
field is the index of a UUID in the UUID List (refer to Figure 320) that is used by
the command.
@stype: Suspend Type (STYPE): This field specifies the type of suspend.
@seqind: Sequence Identifier (SEQIND): This field identified the sequences of this Migration
Send command in relation to other Migration Send commands.
@csvi: Controller State Version Index (CSVI): A non-zero value in this field specifies the
index to a specific entry in the NVMe Controller State Version list of the Supported
Controller State Formats data structure.
@dudmq: Delete User Data Migration Queue (DUDMQ): If set, the migration queue is deleted
is deleted as part of the Suspend operation. If cleared, it is retained.
struct nvme_lm_nvme_controller_state_data - NVMe Controller State data structure describes the
state of a NVMe Controller’s I/O Submission and I/O Completion queues
struct nvme_lm_track_send_args - Arguments for the Track Send command
@result: Set on completion to the command’s CQE DWORD 0 controller response
@args_size: Length of structure
@fd: File descriptor of nvme device
@timeout: Timeout in ms
@mos: Management Operation Specific (MOS): This field is specific to the SEL type
@cdqid: Controller Data Queue ID (CDQID)
@sel: Select (SEL): This field specifies the type of management operation to perform
struct nvme_lockdown_args - Arguments for the NVME Lockdown command
@args_size: Size of &struct nvme_lockdown_args
@fd: File descriptor of nvme device
@result: The command completion result from CQE dword0
@timeout: Timeout in ms (0 for default timeout)
@scp: Scope of the command
@prhbt: Prohibit or allow the command opcode or Set Features command
@ifc: Affected interface
@ofi: Opcode or Feature Identifier
@uuidx: UUID Index if controller supports this id selection method
struct nvme_lockdown_log - Command and Feature Lockdown Log
@cfila: Contents of the Command and Feature Identifier List field in the log page.
@rsvd1: Reserved
@lngth: Length of Command and Feature Identifier List field
@cfil: Command and Feature Identifier List
struct nvme_media_unit_config_desc - Media Unit Configuration Descriptor
@muid: Media Unit Identifier
@rsvd2: Reserved
@mudl: Media Unit Descriptor Length
struct nvme_media_unit_stat_desc - Media Unit Status Descriptor
@muid: Media Unit Identifier
@domainid: Domain Identifier
@endgid: Endurance Group Identifier
@nvmsetid: NVM Set Identifier
@cap_adj_fctr: Capacity Adjustment Factor
@avl_spare: Available Spare
@percent_used: Percentage Used
@mucs: Number of Channels attached to media units
@cio: Channel Identifiers Offset
struct nvme_media_unit_stat_log - Media Unit Status
@nmu: Number unit status descriptor
@cchans: Number of Channels
@sel_config: Selected Configuration
@rsvd6: Reserved
@mus_desc: Media unit statistic descriptors
struct nvme_metadata_element_desc - Metadata Element Descriptor
@type: Element Type (ET)
@rev: Element Revision (ER)
@len: Element Length (ELEN)
@val: Element Value (EVAL), UTF-8 string
struct nvme_mi_ctrl_health_status - Controller Health Data Structure (CHDS)
@ctlid: Controller Identifier
@csts: Controller Status
@ctemp: Composite Temperature
@pdlu: Percentage Used
@spare: Available Spare
@cwarn: Critical Warning
@rsvd9: Reserved
struct nvme_mi_nvm_ss_health_status - Subsystem Management Data Structure
@nss: NVM Subsystem Status
@sw: Smart Warnings
@ctemp: Composite Temperature
@pdlu: Percentage Drive Life Used
@ccs: Composite Controller Status
@rsvd8: Reserved
struct nvme_mi_port_pcie - PCIe Port Specific Data
@mps: PCIe Maximum Payload Size
@sls: PCIe Supported Link Speeds Vector
@cls: PCIe Current Link Speed
@mlw: PCIe Maximum Link Width
@nlw: PCIe Negotiated Link Width
@pn: PCIe Port Number
@rsvd14: Reserved
struct nvme_mi_port_smb - SMBus Port Specific Data
@vpd_addr: Current VPD SMBus/I2C Address
@mvpd_freq: Maximum VPD Access SMBus/I2C Frequency
@mme_addr: Current Management Endpoint SMBus/I2C Address
@mme_freq: Maximum Management Endpoint SMBus/I2C Frequency
@nvmebm: NVMe Basic Management
@rsvd13: Reserved
struct nvme_mi_read_ctrl_info - Controller Information Data Structure
@portid: Port Identifier
@rsvd1: Reserved
@prii: PCIe Routing ID Information
@pri: PCIe Routing ID
@vid: PCI Vendor ID
@did: PCI Device ID
@ssvid: PCI Subsystem Vendor ID
@ssid: PCI Subsystem Device ID
@rsvd16: Reserved
struct nvme_mi_read_nvm_ss_info - NVM Subsystem Information Data Structure
@nump: Number of Ports
@mjr: NVMe-MI Major Version Number
@mnr: NVMe-MI Minor Version Number
@rsvd3: Reserved
struct nvme_mi_read_port_info - Port Information Data Structure
@portt: Port Type
@rsvd1: Reserved
@mmctptus: Maximum MCTP Transmission Unit Size
@meb: Management Endpoint Buffer Size
@pcie: PCIe Port Specific Data
@smb: SMBus Port Specific Data
struct nvme_mi_read_sc_list - Management Endpoint Buffer Supported Command List Data Structure
@numcmd: Number of Commands
@cmds: MEB supported Command Data Structure.
See @struct nvme_mi_osc
struct nvme_mi_vpd_hdr - Vital Product Data Common Header
@ipmiver: IPMI Format Version Number
@iuaoff: Internal Use Area Starting Offset
@ciaoff: Chassis Info Area Starting Offset
@biaoff: Board Info Area Starting Offset
@piaoff: Product Info Area Starting Offset
@mrioff: MultiRecord Info Area Starting Offset
@rsvd6: Reserved
@chchk: Common Header Checksum
@vpd: Vital Product Data
struct nvme_mi_vpd_mr_common - NVMe MultiRecord Area
@type: NVMe Record Type ID
@rf: Record Format
@rlen: Record Length
@rchksum: Record Checksum
@hchksum: Header Checksum
@nmra: NVMe MultiRecord Area
@ppmra: NVMe PCIe Port MultiRecord Area
@tmra: Topology MultiRecord Area
struct nvme_mi_vpd_mra - NVMe MultiRecord Area
@nmravn: NVMe MultiRecord Area Version Number
@ff: Form Factor
@rsvd7: Reserved
@i18vpwr: Initial 1.8 V Power Supply Requirements
@m18vpwr: Maximum 1.8 V Power Supply Requirements
@i33vpwr: Initial 3.3 V Power Supply Requirements
@m33vpwr: Maximum 3.3 V Power Supply Requirements
@rsvd17: Reserved
@m33vapsr: Maximum 3.3 Vi aux Power Supply Requirements
@i5vapsr: Initial 5 V Power Supply Requirements
@m5vapsr: Maximum 5 V Power Supply Requirements
@i12vapsr: Initial 12 V Power Supply Requirements
@m12vapsr: Maximum 12 V Power Supply Requirements
@mtl: Maximum Thermal Load
@tnvmcap: Total NVM Capacity
@rsvd37: Reserved
struct nvme_mi_vpd_ppmra - NVMe PCIe Port MultiRecord Area
@nppmravn: NVMe PCIe Port MultiRecord Area Version Number
@pn: PCIe Port Number
@ppi: Port Information
@ls: PCIe Link Speed
@mlw: PCIe Maximum Link Width
@mctp: MCTP Support
@refccap: Ref Clk Capability
@pi: Port Identifier
@rsvd13: Reserved
struct nvme_mi_vpd_telem - Vital Product Data Element Descriptor
@type: Type of the Element Descriptor
@rev: Revision of the Element Descriptor
@len: Number of bytes in the Element Descriptor
@data: Type-specific information associated with
the Element Descriptor
struct nvme_ns_attach_args - Arguments for Nvme Namespace Management command
@result: NVMe command result
@ctrlist: Controller list to modify attachment state of nsid
@args_size: Size of &struct nvme_ns_attach_args
@fd: File descriptor of nvme device
@timeout: Timeout in ms
@nsid: Namespace ID to execute attach selection
@sel: Attachment selection, see &enum nvme_ns_attach_sel
struct nvme_ns_id_desc - Namespace identifier type descriptor
@nidt: Namespace Identifier Type, see &enum nvme_ns_id_desc_nidt
@nidl: Namespace Identifier Length contains the length in bytes of the
&struct nvme_id_ns.nid.
@rsvd: Reserved
@nid: Namespace Identifier contains a value that is globally unique and
assigned to the namespace when the namespace is created. The length
is defined in &struct nvme_id_ns.nidl.
struct nvme_ns_mgmt_host_sw_specified - Namespace management Host Software
Specified Fields.
@nsze: Namespace Size indicates the total size of the namespace in
logical blocks. The number of logical blocks is based on the
formatted LBA size.
@ncap: Namespace Capacity indicates the maximum number of logical blocks
that may be allocated in the namespace at any point in time. The
number of logical blocks is based on the formatted LBA size.
@rsvd16: Reserved
@flbas: Formatted LBA Size, see &enum nvme_id_ns_flbas.
@rsvd27: Reserved
@dps: End-to-end Data Protection Type Settings, see
&enum nvme_id_ns_dps.
@nmic: Namespace Multi-path I/O and Namespace Sharing Capabilities, see
&enum nvme_id_ns_nmic.
@rsvd31: Reserved
@anagrpid: ANA Group Identifier indicates the ANA Group Identifier of the
ANA group of which the namespace is a member.
@rsvd96: Reserved
@nvmsetid: NVM Set Identifier indicates the NVM Set with which this
namespace is associated.
@endgid: Endurance Group Identifier indicates the Endurance Group with
which this namespace is associated.
@rsvd104: Reserved
@lbstm: Logical Block Storage Tag Mask Identifies the mask for the
Storage Tag field for the protection information
@nphndls: Number of Placement Handles specifies the number of Placement
Handles included in the Placement Handle List
@rsvd394: Reserved
@rsvd499: Reserved for I/O Command Sets that extend this specification.
@zns: rsvd499( Zoned Namespace Command Set specific field )
@znsco: Zoned Namespace Create Options
Bits 7-1: Reserved.
Bits 0: Allocate ZRWA Resources (AZR): If set to ‘1’, then the
namespace is to be created with the number of ZRWA resource specified
in the RNUMZRWA field of this data structure. If cleared to ‘0’, then
no ZRWA resources are allocated to the namespace to be created. If
the ZRWASUP bit is cleared to ‘0’, then this field shall be ignored
by the controller.
@rar: Requested Active Resources specifies the number of active
resources to be allocated to the created namespace.
@ror: Requested Open Resources specifies the number of open resources
to be allocated to the created namespace.
@rnumzrwa: Requested Number of ZRWA Resources specifies the number of ZRWA
resources to be allocated to the created namespace.
see &struct nvme_ns_mgmt_host_sw_specified_zns.
@phndl: Placement Handle Associated RUH : This field specifies the Reclaim
Unit Handle Identifier to be associated with the Placement Handle
value. If the Flexible Data Placement capability is not supported or
not enabled in specified Endurance Group, then the controller shall
ignore this field.
@rsvd768: Reserved
struct nvme_nvmset_attr - NVM Set Attributes Entry
@nvmsetid: NVM Set Identifier
@endgid: Endurance Group Identifier
@rsvd4: Reserved
@rr4kt: Random 4 KiB Read Typical indicates the typical
time to complete a 4 KiB random read in 100 nanosecond units
when the NVM Set is in a Predictable Latency Mode Deterministic
Window and there is 1 outstanding command per NVM Set.
@ows: Optimal Write Size
@tnvmsetcap: Total NVM Set Capacity
@unvmsetcap: Unallocated NVM Set Capacity
@rsvd48: Reserved
struct nvme_passthru_cmd - nvme passthrough command structure
@opcode: Operation code, see &enum nvme_io_opcodes and &enum nvme_admin_opcodes
@flags: Not supported: intended for command flags (eg: SGL, FUSE)
@rsvd1: Reserved for future use
@nsid: Namespace Identifier, or Fabrics type
@cdw2: Command Dword 2 (no spec defined use)
@cdw3: Command Dword 3 (no spec defined use)
@metadata: User space address to metadata buffer (NULL if not used)
@addr: User space address to data buffer (NULL if not used)
@metadata_len: Metadata buffer transfer length
@data_len: Data buffer transfer length
@cdw10: Command Dword 10 (command specific)
@cdw11: Command Dword 11 (command specific)
@cdw12: Command Dword 12 (command specific)
@cdw13: Command Dword 13 (command specific)
@cdw14: Command Dword 14 (command specific)
@cdw15: Command Dword 15 (command specific)
@timeout_ms: If non-zero, overrides system default timeout in milliseconds
@result: Set on completion to the command’s CQE DWORD 0 controller response
struct nvme_passthru_cmd64 - 64-bit nvme passthrough command structure
@opcode: Operation code, see &enum nvme_io_opcodes and &enum nvme_admin_opcodes
@flags: Not supported: intended for command flags (eg: SGL, FUSE)
@rsvd1: Reserved for future use
@nsid: Namespace Identifier, or Fabrics type
@cdw2: Command Dword 2 (no spec defined use)
@cdw3: Command Dword 3 (no spec defined use)
@metadata: User space address to metadata buffer (NULL if not used)
@addr: User space address to data buffer (NULL if not used)
@metadata_len: Metadata buffer transfer length
@data_len: Data buffer transfer length
@cdw10: Command Dword 10 (command specific)
@cdw11: Command Dword 11 (command specific)
@cdw12: Command Dword 12 (command specific)
@cdw13: Command Dword 13 (command specific)
@cdw14: Command Dword 14 (command specific)
@cdw15: Command Dword 15 (command specific)
@timeout_ms: If non-zero, overrides system default timeout in milliseconds
@rsvd2: Reserved for future use (and fills an implicit struct pad
@result: Set on completion to the command’s CQE DWORD 0-1 controller response
struct nvme_persistent_event_log - Persistent Event Log
@lid: Log Identifier
@rsvd1: Reserved
@tnev: Total Number of Events
@tll: Total Log Length
@rv: Log Revision
@rsvd17: Reserved
@lhl: Log Header Length
@ts: Timestamp
@poh: Power on Hours
@pcc: Power Cycle Count
@vid: PCI Vendor ID
@ssvid: PCI Subsystem Vendor ID
@sn: Serial Number
@mn: Model Number
@subnqn: NVM Subsystem NVMe Qualified Name
@gen_number: Generation Number
@rci: Reporting Context Information
@rsvd378: Reserved
@seb: Supported Events Bitmap
struct nvme_phy_rx_eom_log - Physical Interface Receiver Eye Opening Measurement Log
@lid: Log Identifier
@eomip: EOM In Progress
@hsize: Header Size
@rsize: Result Size
@eomdgn: EOM Data Generation Number
@lr: Log Revision
@odp: Optional Data Present
@lanes: Number of lanes configured for this port
@epl: Eyes Per Lane
@lspfc: Log Specific Parameter Field Copy
@li: Link Information
@rsvd15: Reserved
@lsic: Log Specific Identifier Copy
@dsize: Descriptor Size
@nd: Number of Descriptors
@maxtb: Maximum Top Bottom
@maxlr: Maximum Left Right
@etgood: Estimated Time for Good Quality
@etbetter: Estimated Time for Better Quality
@etbest: Estimated Time for Best Quality
@rsvd36: Reserved
@descs: EOM Lane Descriptors
struct nvme_power_on_reset_info_list - Controller Reset Information
@cid: Controller ID
@fw_act: Firmware Activation
@op_in_prog: Operation in Progress
@rsvd4: Reserved
@ctrl_power_cycle: Controller Power Cycle
@power_on_ml_seconds: Power on milliseconds
@ctrl_time_stamp: Controller Timestamp
struct nvme_reachability_association_desc - Reachability Association Descriptor
@rasid: Reachability Association ID
@nrid: Number of RGID Values
@chngc: Change Count
@rac: Reachability Association Characteristics
@rsvd17: Reserved
@rgid: Reachability Group Identifier List
struct nvme_reachability_associations_log - Reachability Associations Log
@chngc: Change Count
@nrad: Number of Reachability Association Descriptors
@rsvd10: Reserved
@rad: Reachability Association Descriptor List
struct nvme_reachability_group_desc - Reachability Group Descriptor
@rgid: Reachability Group ID
@nnid: Number of NSID Values
@chngc: Change Count
@rsvd16: Reserved
@nsid: Namespace Identifier List
struct nvme_reachability_groups_log - Reachability Groups Log
@chngc: Change Count
@nrgd: Number of Reachability Group Descriptors
@rsvd10: Reserved
@rgd: Reachability Group Descriptor List
struct nvme_resv_acquire_args - Arguments for the NVMe Reservation Acquire Command
@nrkey: The reservation key to be unregistered from the namespace if
the action is preempt
@iekey: Set to ignore the existing key
@result: The command completion result from CQE dword0
@args_size: Size of &struct nvme_resv_acquire_args
@fd: File descriptor of nvme device
@timeout: Timeout in ms
@nsid: Namespace identifier
@rtype: The type of reservation to be create, see &enum nvme_resv_rtype
@racqa: The action that is performed by the command, see &enum nvme_resv_racqa
@crkey: The current reservation key associated with the host
struct nvme_resv_register_args - Arguments for the NVMe Reservation Register command
@crkey: The current reservation key associated with the host
@nrkey: The new reservation key to be register if action is register or
replace
@result: The command completion result from CQE dword0
@args_size: Size of &struct nvme_resv_register_args
@fd: File descriptor of nvme device
@nsid: Namespace identifier
@rrega: The registration action, see &enum nvme_resv_rrega
@cptpl: Change persist through power loss, see &enum nvme_resv_cptpl
@iekey: Set to ignore the existing key
@timeout: Timeout in ms
struct nvme_resv_release_args - Arguments for the NVMe Reservation Release Command
@crkey: The current reservation key to release
@result: The command completion result from CQE dword0
@args_size: Size of &struct nvme_resv_release_args
@fd: File descriptor of nvme device
@timeout: Timeout in ms
@nsid: Namespace identifier
@rtype: The type of reservation to be create, see &enum nvme_resv_rtype
@rrela: Reservation release action, see &enum nvme_resv_rrela
@iekey: Set to ignore the existing key
struct nvme_resv_report_args - Arguments for the NVMe Reservation Report command
@result: The command completion result from CQE dword0
@report: The user space destination address to store the reservation
report
@args_size: Size of &struct nvme_resv_report_args
@fd: File descriptor of nvme device
@timeout: Timeout in ms
@nsid: Namespace identifier
@len: Number of bytes to request transferred with this command
@eds: Request extended Data Structure
struct nvme_resv_status - Reservation Status Data Structure
@gen: Generation
@rtype: Reservation Type
@regctl: Number of Registered Controllers
@rsvd7: Reserved
@ptpls: Persist Through Power Loss State
@rsvd10: Reserved
@rsvd24: Reserved
@regctl_eds: Registered Controller Extended Data Structure
@regctl_ds: Registered Controller Data Structure
struct nvme_sanitize_log_page - Sanitize Status (Log Identifier 81h)
@sprog: Sanitize Progress (SPROG): indicates the fraction complete of the
sanitize operation. The value is a numerator of the fraction
complete that has 65,536 (10000h) as its denominator. This value
shall be set to FFFFh if the @sstat field is not set to
%NVME_SANITIZE_SSTAT_STATUS_IN_PROGESS.
@sstat: Sanitize Status (SSTAT): indicates the status associated with
the most recent sanitize operation. See &enum nvme_sanitize_sstat.
@scdw10: Sanitize Command Dword 10 Information (SCDW10): contains the value
of the Command Dword 10 field of the Sanitize command that started
the sanitize operation.
@eto: Estimated Time For Overwrite: indicates the number of seconds required
to complete an Overwrite sanitize operation with 16 passes in
the background when the No-Deallocate Modifies Media After Sanitize
field is not set to 10b. A value of 0h indicates that the sanitize
operation is expected to be completed in the background when the
Sanitize command that started that operation is completed. A value
of FFFFFFFFh indicates that no time period is reported.
@etbe: Estimated Time For Block Erase: indicates the number of seconds
required to complete a Block Erase sanitize operation in the
background when the No-Deallocate Modifies Media After Sanitize
field is not set to 10b. A value of 0h indicates that the sanitize
operation is expected to be completed in the background when the
Sanitize command that started that operation is completed.
A value of FFFFFFFFh indicates that no time period is reported.
@etce: Estimated Time For Crypto Erase: indicates the number of seconds
required to complete a Crypto Erase sanitize operation in the
background when the No-Deallocate Modifies Media After Sanitize
field is not set to 10b. A value of 0h indicates that the sanitize
operation is expected to be completed in the background when the
Sanitize command that started that operation is completed.
A value of FFFFFFFFh indicates that no time period is reported.
@etond: Estimated Time For Overwrite With No-Deallocate Media Modification:
indicates the number of seconds required to complete an Overwrite
sanitize operation and the associated additional media modification
after the Overwrite sanitize operation in the background when
the No-Deallocate After Sanitize bit was set to 1 in the Sanitize
command that requested the Overwrite sanitize operation; and
the No-Deallocate Modifies Media After Sanitize field is set to 10b.
A value of 0h indicates that the sanitize operation is expected
to be completed in the background when the Sanitize command that
started that operation is completed. A value of FFFFFFFFh indicates
that no time period is reported.
@etbend: Estimated Time For Block Erase With No-Deallocate Media Modification:
indicates the number of seconds required to complete a Block Erase
sanitize operation and the associated additional media modification
after the Block Erase sanitize operation in the background when
the No-Deallocate After Sanitize bit was set to 1 in the Sanitize
command that requested the Overwrite sanitize operation; and
the No-Deallocate Modifies Media After Sanitize field is set to 10b.
A value of 0h indicates that the sanitize operation is expected
to be completed in the background when the Sanitize command that
started that operation is completed. A value of FFFFFFFFh indicates
that no time period is reported.
@etcend: Estimated Time For Crypto Erase With No-Deallocate Media Modification:
indicates the number of seconds required to complete a Crypto Erase
sanitize operation and the associated additional media modification
after the Crypto Erase sanitize operation in the background when
the No-Deallocate After Sanitize bit was set to 1 in the Sanitize
command that requested the Overwrite sanitize operation; and
the No-Deallocate Modifies Media After Sanitize field is set to 10b.
A value of 0h indicates that the sanitize operation is expected
to be completed in the background when the Sanitize command that
started that operation is completed. A value of FFFFFFFFh indicates
that no time period is reported.
@etpvds: Estimated Time For Post-Verification Deallocation State: indicates the
number of seconds required to deallocate all media allocated for user data
after exiting the Media Verification state (i.e., the time difference between
entering and exiting the Post-Verification Deallocation state), if that state
is entered as part of the sanitize operation. A value of FFFFFFFFh indicates
that no time period is reported.
@ssi: Sanitize State Information: indicate the state of the Sanitize Operation
State Machine.
@rsvd37: Reserved
struct nvme_sanitize_nvm_args - Arguments for the NVMe Sanitize NVM command
@result: The command completion result from CQE dword0
@args_size: Size of &struct nvme_sanitize_nvm_args
@fd: File descriptor of nvme device
@timeout: Timeout in ms
@ovrpat: Overwrite pattern
@sanact: Sanitize action, see &enum nvme_sanitize_sanact
@ause: Set to allow unrestricted sanitize exit
@owpass: Overwrite pass count
@oipbp: Set to overwrite invert pattern between passes
@nodas: Set to not deallocate blocks after sanitizing
@emvs: Set to enter media verification state
struct nvme_secondary_ctrl - Secondary Controller Entry
@scid: Secondary Controller Identifier
@pcid: Primary Controller Identifier
@scs: Secondary Controller State
@rsvd5: Reserved
@vfn: Virtual Function Number
@nvq: Number of VQ Flexible Resources Assigned
@nvi: Number of VI Flexible Resources Assigned
@rsvd14: Reserved
struct nvme_security_receive_args - Arguments for the NVMe Security Receive command
@result: The command completion result from CQE dword0
@data: Security data payload to send
@args_size: Size of &struct nvme_security_receive_args
@fd: File descriptor of nvme device
@timeout: Timeout in ms
@nsid: Namespace ID to issue security command on
@al: Protocol specific allocation length
@data_len: Data length of the payload in bytes
@nssf: NVMe Security Specific field
@spsp0: Security Protocol Specific field
@spsp1: Security Protocol Specific field
@secp: Security Protocol
struct nvme_security_send_args - Arguments for the NVMe Security Send command
@result: The command completion result from CQE dword0
@data: Security data payload to send
@args_size: Size of &struct nvme_security_send_args
@fd: File descriptor of nvme device
@timeout: Timeout in ms
@nsid: Namespace ID to issue security command on
@tl: Protocol specific transfer length
@data_len: Data length of the payload in bytes
@nssf: NVMe Security Specific field
@spsp0: Security Protocol Specific field
@spsp1: Security Protocol Specific field
@secp: Security Protocol
struct nvme_self_test_log - Device Self-test (Log Identifier 06h)
@current_operation: Current Device Self-Test Operation: indicates the status
of the current device self-test operation. If a device
self-test operation is in process (i.e., this field is set
to #NVME_ST_CURR_OP_SHORT or #NVME_ST_CURR_OP_EXTENDED),
then the controller shall not set this field to
#NVME_ST_CURR_OP_NOT_RUNNING until a new Self-test Result
Data Structure is created (i.e., if a device self-test
operation completes or is aborted, then the controller
shall create a Self-test Result Data Structure prior to
setting this field to #NVME_ST_CURR_OP_NOT_RUNNING).
See &enum nvme_st_curr_op.
@completion: Current Device Self-Test Completion: indicates the percentage
of the device self-test operation that is complete (e.g.,
a value of 25 indicates that 25% of the device self-test
operation is complete and 75% remains to be tested).
If the @current_operation field is cleared to
#NVME_ST_CURR_OP_NOT_RUNNING (indicating there is no device
self-test operation in progress), then this field is ignored.
@rsvd: Reserved
@result: Self-test Result Data Structures, see &struct nvme_st_result.
struct nvme_set_features_args - Arguments for the NVMe Admin Set Feature command
@result: The command completion result from CQE dword0
@data: User address of feature data, if applicable
@args_size: Size of &struct nvme_set_features_args
@fd: File descriptor of nvme device
@timeout: Timeout in ms
@nsid: Namespace ID, if applicable
@cdw11: Value to set the feature to
@cdw12: Feature specific command dword12 field
@cdw13: Feature specific command dword13 field
@cdw15: Feature specific command dword15 field
@data_len: Length of feature data, if applicable, in bytes
@save: Save value across power states
@uuidx: UUID Index for differentiating vendor specific encoding
@fid: Feature identifier
struct nvme_set_property_args - Arguments for NVMe Set Property command
@args_size: Size of &struct nvme_set_property_args
@fd: File descriptor of nvme device
@result: The command completion result from CQE dword0
@timeout: Timeout in ms
@offset: Property offset from the base to set
@value: The value to set the property
struct nvme_smart_log - SMART / Health Information Log (Log Identifier 02h)
@critical_warning: This field indicates critical warnings for the state
of the controller. Critical warnings may result in an
asynchronous event notification to the host. Bits in
this field represent the current associated state and
are not persistent (see &enum nvme_smart_crit).
@temperature: Composite Temperature: Contains a value corresponding
to a temperature in Kelvins that represents the current
composite temperature of the controller and namespace(s)
associated with that controller. The manner in which
this value is computed is implementation specific and
may not represent the actual temperature of any physical
point in the NVM subsystem. Warning and critical
overheating composite temperature threshold values are
reported by the WCTEMP and CCTEMP fields in the Identify
Controller data structure.
@avail_spare: Available Spare: Contains a normalized percentage (0%
to 100%) of the remaining spare capacity available.
@spare_thresh: Available Spare Threshold: When the Available Spare
falls below the threshold indicated in this field, an
asynchronous event completion may occur. The value is
indicated as a normalized percentage (0% to 100%).
The values 101 to 255 are reserved.
@percent_used: Percentage Used: Contains a vendor specific estimate
of the percentage of NVM subsystem life used based on
the actual usage and the manufacturer’s prediction of
NVM life. A value of 100 indicates that the estimated
endurance of the NVM in the NVM subsystem has been
consumed, but may not indicate an NVM subsystem failure.
The value is allowed to exceed 100. Percentages greater
than 254 shall be represented as 255. This value shall
be updated once per power-on hour (when the controller
is not in a sleep state).
@endu_grp_crit_warn_sumry: Endurance Group Critical Warning Summary: This field
indicates critical warnings for the state of Endurance
Groups. Bits in this field represent the current associated
state and are not persistent (see &enum nvme_smart_egcw).
@rsvd7: Reserved
@data_units_read: Data Units Read: Contains the number of 512 byte data
units the host has read from the controller; this value
does not include metadata. This value is reported in
thousands (i.e., a value of 1 corresponds to 1000
units of 512 bytes read) and is rounded up (e.g., one
indicates the that number of 512 byte data units read
is from 1 to 1000, three indicates that the number of
512 byte data units read is from 2001 to 3000). When
the LBA size is a value other than 512 bytes, the
controller shall convert the amount of data read to
512 byte units. For the NVM command set, logical blocks
read as part of Compare, Read, and Verify operations
shall be included in this value. A value of %0h in
this field indicates that the number of Data Units Read
is not reported.
@data_units_written: Data Units Written: Contains the number of 512 byte
data units the host has written to the controller;
this value does not include metadata. This value is
reported in thousands (i.e., a value of 1 corresponds
to 1000 units of 512 bytes written) and is rounded up
(e.g., one indicates that the number of 512 byte data
units written is from 1 to 1,000, three indicates that
the number of 512 byte data units written is from 2001
to 3000). When the LBA size is a value other than 512
bytes, the controller shall convert the amount of data
written to 512 byte units. For the NVM command set,
logical blocks written as part of Write operations shall
be included in this value. Write Uncorrectable commands
and Write Zeroes commands shall not impact this value.
A value of %0h in this field indicates that the number
of Data Units Written is not reported.
@host_reads: Host Read Commands: Contains the number of read commands
completed by the controller. For the NVM command set,
this value is the sum of the number of Compare commands
and the number of Read commands.
@host_writes: Host Write Commands: Contains the number of write
commands completed by the controller. For the NVM
command set, this is the number of Write commands.
@ctrl_busy_time: Controller Busy Time: Contains the amount of time the
controller is busy with I/O commands. The controller
is busy when there is a command outstanding to an I/O
Queue (specifically, a command was issued via an I/O
Submission Queue Tail doorbell write and the corresponding
completion queue entry has not been posted yet to the
associated I/O Completion Queue). This value is
reported in minutes.
@power_cycles: Power Cycles: Contains the number of power cycles.
@power_on_hours: Power On Hours: Contains the number of power-on hours.
This may not include time that the controller was
powered and in a non-operational power state.
@unsafe_shutdowns: Unsafe Shutdowns: Contains the number of unsafe
shutdowns. This count is incremented when a Shutdown
Notification (CC.SHN) is not received prior to loss of power.
@media_errors: Media and Data Integrity Errors: Contains the number
of occurrences where the controller detected an
unrecovered data integrity error. Errors such as
uncorrectable ECC, CRC checksum failure, or LBA tag
mismatch are included in this field. Errors introduced
as a result of a Write Uncorrectable command may or
may not be included in this field.
@num_err_log_entries: Number of Error Information Log Entries: Contains the
number of Error Information log entries over the life
of the controller.
@warning_temp_time: Warning Composite Temperature Time: Contains the amount
of time in minutes that the controller is operational
and the Composite Temperature is greater than or equal
to the Warning Composite Temperature Threshold (WCTEMP)
field and less than the Critical Composite Temperature
Threshold (CCTEMP) field in the Identify Controller
data structure. If the value of the WCTEMP or CCTEMP
field is %0h, then this field is always cleared to %0h
regardless of the Composite Temperature value.
@critical_comp_time: Critical Composite Temperature Time: Contains the amount
of time in minutes that the controller is operational
and the Composite Temperature is greater than or equal
to the Critical Composite Temperature Threshold (CCTEMP)
field in the Identify Controller data structure. If
the value of the CCTEMP field is %0h, then this field
is always cleared to 0h regardless of the Composite
Temperature value.
@temp_sensor: Temperature Sensor 1-8: Contains the current temperature
in degrees Kelvin reported by temperature sensors 1-8.
The physical point in the NVM subsystem whose temperature
is reported by the temperature sensor and the temperature
accuracy is implementation specific. An implementation
that does not implement the temperature sensor reports
a value of %0h.
@thm_temp1_trans_count: Thermal Management Temperature 1 Transition Count:
Contains the number of times the controller transitioned
to lower power active power states or performed vendor
specific thermal management actions while minimizing
the impact on performance in order to attempt to reduce
the Composite Temperature because of the host controlled
thermal management feature (i.e., the Composite
Temperature rose above the Thermal Management
Temperature 1). This counter shall not wrap once the
value %FFFFFFFFh is reached. A value of %0h, indicates
that this transition has never occurred or this field
is not implemented.
@thm_temp2_trans_count: Thermal Management Temperature 2 Transition Count
@thm_temp1_total_time: Total Time For Thermal Management Temperature 1:
Contains the number of seconds that the controller
had transitioned to lower power active power states or
performed vendor specific thermal management actions
while minimizing the impact on performance in order to
attempt to reduce the Composite Temperature because of
the host controlled thermal management feature. This
counter shall not wrap once the value %FFFFFFFFh is
reached. A value of %0h, indicates that this transition
has never occurred or this field is not implemented.
@thm_temp2_total_time: Total Time For Thermal Management Temperature 2
@rsvd232: Reserved
struct nvme_st_result - Self-test Result
@dsts: Device Self-test Status: Indicates the device self-test code and the
status of the operation (see &enum nvme_status_result and &enum nvme_st_code).
@seg: Segment Number: Iindicates the segment number where the first self-test
failure occurred. If Device Self-test Status (@dsts) is not set to
#NVME_ST_RESULT_KNOWN_SEG_FAIL, then this field should be ignored.
@vdi: Valid Diagnostic Information: Indicates the diagnostic failure
information that is reported. See &enum nvme_st_valid_diag_info.
@rsvd: Reserved
@poh: Power On Hours (POH): Indicates the number of power-on hours at the
time the device self-test operation was completed or aborted. This
does not include time that the controller was powered and in a low
power state condition.
@nsid: Namespace Identifier (NSID): Indicates the namespace that the Failing
LBA occurred on. Valid only when the NSID Valid bit
(#NVME_ST_VALID_DIAG_INFO_NSID) is set in the Valid Diagnostic
Information (@vdi) field.
@flba: Failing LBA: indicates the LBA of the logical block that caused the
test to fail. If the device encountered more than one failed logical
block during the test, then this field only indicates one of those
failed logical blocks. Valid only when the NSID Valid bit
(#NVME_ST_VALID_DIAG_INFO_FLBA) is set in the Valid Diagnostic
Information (@vdi) field.
@sct: Status Code Type: This field may contain additional information related
to errors or conditions. Bits 2:0 may contain additional information
relating to errors or conditions that occurred during the device
self-test operation represented in the same format used in the Status
Code Type field of the completion queue entry (refer to &enum nvme_status_field).
Valid only when the NSID Valid bit (#NVME_ST_VALID_DIAG_INFO_SCT) is
set in the Valid Diagnostic Information (@vdi) field.
@sc: Status Code: This field may contain additional information relating
to errors or conditions that occurred during the device self-test
operation represented in the same format used in the Status Code field
of the completion queue entry. Valid only when the SCT Valid bit
(#NVME_ST_VALID_DIAG_INFO_SC) is set in the Valid Diagnostic
Information (@vdi) field.
@vs: Vendor Specific.
struct nvme_telemetry_log - Retrieve internal data specific to the
manufacturer.
@lpi: Log Identifier, either %NVME_LOG_LID_TELEMETRY_HOST or
%NVME_LOG_LID_TELEMETRY_CTRL
@rsvd1: Reserved
@ieee: IEEE OUI Identifier is the Organization Unique Identifier (OUI)
for the controller vendor that is able to interpret the data.
@dalb1: Telemetry Host/Controller Initiated Data Area 1 Last Block is
the value of the last block in this area.
@dalb2: Telemetry Host/Controller Initiated Data Area 1 Last Block is
the value of the last block in this area.
@dalb3: Telemetry Host/ControllerInitiated Data Area 1 Last Block is
the value of the last block in this area.
@rsvd14: Reserved
@dalb4: Telemetry Host/Controller Initiated Data Area 4 Last Block is
the value of the last block in this area.
@rsvd20: Reserved
@ths: Telemetry Host-Initiated Scope
@hostdgn: Telemetry Host-Initiated Data Generation Number is a
value that is incremented each time the host initiates a
capture of its internal controller state in the controller.
@tcs: Telemetry Controller-Initiated Scope
@ctrlavail: Telemetry Controller-Initiated Data Available, if cleared,
then the controller telemetry log does not contain saved
internal controller state. If this field is set to 1h, the
controller log contains saved internal controller state. If
this field is set to 1h, the data will be latched until the
host releases it by reading the log with RAE cleared.
@ctrldgn: Telemetry Controller-Initiated Data Generation Number is
a value that is incremented each time the controller initiates a
capture of its internal controller state in the controller .
@rsnident: Reason Identifiers a vendor specific identifier that describes
the operating conditions of the controller at the time of
capture.
@data_area: Telemetry data blocks, vendor specific information data.
struct nvme_timestamp - Timestamp - Data Structure for Get Features
@timestamp: Timestamp value based on origin and synch field
@attr: Attribute
@rsvd: Reserved
struct nvme_uring_cmd - nvme uring command structure
@opcode: Operation code, see &enum nvme_io_opcodes and &enum nvme_admin_opcodes
@flags: Not supported: intended for command flags (eg: SGL, FUSE)
@rsvd1: Reserved for future use
@nsid: Namespace Identifier, or Fabrics type
@cdw2: Command Dword 2 (no spec defined use)
@cdw3: Command Dword 3 (no spec defined use)
@metadata: User space address to metadata buffer (NULL if not used)
@addr: User space address to data buffer (NULL if not used)
@metadata_len: Metadata buffer transfer length
@data_len: Data buffer transfer length
@cdw10: Command Dword 10 (command specific)
@cdw11: Command Dword 11 (command specific)
@cdw12: Command Dword 12 (command specific)
@cdw13: Command Dword 13 (command specific)
@cdw14: Command Dword 14 (command specific)
@cdw15: Command Dword 15 (command specific)
@timeout_ms: If non-zero, overrides system default timeout in milliseconds
@rsvd2: Reserved for future use (and fills an implicit struct pad
struct nvme_virtual_mgmt_args - Arguments for the NVMe Virtualization
resource management command
@args_size: Size of &struct nvme_virtual_mgmt_args
@fd: File descriptor of nvme device
@result: If successful, the CQE dword0
@timeout: Timeout in ms
@act: Virtual resource action, see &enum nvme_virt_mgmt_act
@rt: Resource type to modify, see &enum nvme_virt_mgmt_rt
@cntlid: Controller id for which resources are bing modified
@nr: Number of resources being allocated or assigned
struct nvme_zns_append_args - Arguments for the NVMe ZNS Append command
@zslba: Zone start logical block address
@result: The command completion result from CQE dword0
@data: Userspace address of the data
@metadata: Userspace address of the metadata
@args_size: Size of &struct nvme_zns_append_args
@fd: File descriptor of nvme device
@timeout: Timeout in ms
@nsid: Namespace ID
@ilbrt: Initial logical block reference tag
@data_len: Length of @data
@metadata_len: Length of @metadata
@nlb: Number of logical blocks
@control:
@lbat: Logical block application tag
@lbatm: Logical block application tag mask
@rsvd1: Reserved
@ilbrt_u64: Initial logical block reference tag - 8 byte
version required for enhanced protection info
struct nvme_zns_desc - Zone Descriptor Data Structure
@zt: Zone Type
@zs: Zone State
@za: Zone Attributes
@zai: Zone Attributes Information
@rsvd4: Reserved
@zcap: Zone Capacity
@zslba: Zone Start Logical Block Address
@wp: Write Pointer
@rsvd32: Reserved
struct nvme_zns_id_ctrl - I/O Command Set Specific Identify Controller Data Structure for the Zoned Namespace Command Set
@zasl: Zone Append Size Limit
@rsvd1: Reserved
struct nvme_zns_mgmt_recv_args - Arguments for the NVMe ZNS Management Receive command
@slba: Starting logical block address
@result: The command completion result from CQE dword0
@data: Userspace address of the data
@args_size: Size of &struct nvme_zns_mgmt_recv_args
@fd: File descriptor of nvme device
@timeout: timeout in ms
@nsid: Namespace ID
@zra: zone receive action
@data_len: Length of @data
@zrasf: Zone receive action specific field
@zras_feat: Zone receive action specific features
struct nvme_zns_mgmt_send_args - Arguments for the NVMe ZNS Management Send command
@slba: Starting logical block address
@result: The command completion result from CQE dword0
@data: Userspace address of the data
@args_size: Size of &struct nvme_zns_mgmt_send_args
@fd: File descriptor of nvme device
@timeout: timeout in ms
@nsid: Namespace ID
@zsa: Zone send action
@data_len: Length of @data
@select_all: Select all flag
@zsaso: Zone Send Action Specific Option
struct nvme_zone_report - Report Zones Data Structure
@nr_zones: Number of descriptors in @entries
@rsvd8: Reserved
@entries: Zoned namespace descriptors
struct nvmf_connect_data - Data payload for the ‘connect’ command
@hostid: Host ID of the connecting host
@cntlid: Requested controller ID
@rsvd4: Reserved
@subsysnqn: Subsystem NQN to connect to
@hostnqn: Host NQN of the connecting host
@rsvd5: Reserved
union nvmf_die - Discovery Information Entry (DIE)
@basic: Basic format (&struct nvmf_disc_log_entry)
@extended: Extended format (&struct nvmf_ext_die)
struct nvmf_dim_data - Discovery Information Management (DIM) - Data
@tdl: Total Data Length
@rsvd4: Reserved
@nument: Number of entries
@entfmt: Entry Format (&enum nvmf_dim_entfmt)
@etype: Entity Type (&enum nvmf_dim_etype)
@portlcl: Port Local
@rsvd21: Reserved
@ektype: Entry Key Type
@eid: Entity Identifier (e.g. Host NQN)
@ename: Entity Name (e.g. hostname)
@ever: Entity Version (e.g. OS Name/Version)
@rsvd600: Reserved
@die: Discovery Information Entry (see @nument above)
struct nvmf_disc_log_entry - Discovery Log Page entry
@trtype: Transport Type (TRTYPE): Specifies the NVMe Transport type.
See &enum nvmf_trtype.
@adrfam: Address Family (ADRFAM): Specifies the address family.
See &enum nvmf_addr_family.
@subtype: Subsystem Type (SUBTYPE): Specifies the type of the NVM subsystem
that is indicated in this entry. See &enum nvme_subsys_type.
@treq: Transport Requirements (TREQ): Indicates requirements for the NVMe
Transport. See &enum nvmf_treq.
@portid: Port ID (PORTID): Specifies a particular NVM subsystem port.
Different NVMe Transports or address families may utilize the same
Port ID value (e.g. a Port ID may support both iWARP and RoCE).
@cntlid: Controller ID (CNTLID): Specifies the controller ID. If the NVM
subsystem uses a dynamic controller model, then this field shall
be set to FFFFh. If the NVM subsystem uses a static controller model,
then this field may be set to a specific controller ID (values 0h
to FFEFh are valid). If the NVM subsystem uses a static controller
model and the value indicated is FFFEh, then the host should remember
the Controller ID returned as part of the Fabrics Connect command
in order to re-establish an association in the future with the same
controller.
@asqsz: Admin Max SQ Size (ASQSZ): Specifies the maximum size of an Admin
Submission Queue. This applies to all controllers in the NVM
subsystem. The value shall be a minimum of 32 entries.
@eflags: Entry Flags (EFLAGS): Indicates additional information related to
the current entry. See &enum nvmf_disc_eflags.
@rsvd12: Reserved
@trsvcid: Transport Service Identifier (TRSVCID): Specifies the NVMe Transport
service identifier as an ASCII string. The NVMe Transport service
identifier is specified by the associated NVMe Transport binding
specification.
@rsvd64: Reserved
@subnqn: NVM Subsystem Qualified Name (SUBNQN): NVMe Qualified Name (NQN)
that uniquely identifies the NVM subsystem. For a subsystem, if that
Discovery subsystem has a unique NQN (i.e., the NVM Subsystem NVMe
Qualified Name (SUBNQN) field in that Discovery subsystem’s Identify
Controller data structure contains a unique NQN value), then the
value returned shall be that unique NQN. If the Discovery subsystem
does not have a unique NQN, then the value returned shall be the
well-known Discovery Service NQN (nqn.2014-08.org.nvmexpress.discovery).
@traddr: Transport Address (TRADDR): Specifies the address of the NVM subsystem
that may be used for a Connect command as an ASCII string. The
Address Family field describes the reference for parsing this field.
@tsas: Transport specific attribute settings
struct nvmf_discovery_log - Discovery Log Page (Log Identifier 70h)
@genctr: Generation Counter (GENCTR): Indicates the version of the discovery
information, starting at a value of 0h. For each change in the
Discovery Log Page, this counter is incremented by one. If the value
of this field is FFFFFFFF_FFFFFFFFh, then the field shall be cleared
to 0h when incremented (i.e., rolls over to 0h).
@numrec: Number of Records (NUMREC): Indicates the number of records
contained in the log.
@recfmt: Record Format (RECFMT): Specifies the format of the Discovery Log
Page. If a new format is defined, this value is incremented by one.
The format of the record specified in this definition shall be 0h.
@rsvd14: Reserved
@entries: Discovery Log Page Entries - see &struct nvmf_disc_log_entry.
struct nvmf_ext_attr - Extended Attribute (EXAT)
@exattype: Extended Attribute Type (EXATTYPE) - see @enum nvmf_exattype
@exatlen: Extended Attribute Length (EXATLEN)
@exatval: Extended Attribute Value (EXATVAL) - size allocated for array
must be a multiple of 4 bytes
struct nvmf_ext_die - Extended Discovery Information Entry (DIE)
@trtype: Transport Type (&enum nvmf_trtype)
@adrfam: Address Family (&enum nvmf_addr_family)
@subtype: Subsystem Type (&enum nvme_subsys_type)
@treq: Transport Requirements (&enum nvmf_treq)
@portid: Port ID
@cntlid: Controller ID
@asqsz: Admin Max SQ Size
@rsvd10: Reserved
@trsvcid: Transport Service Identifier
@resv64: Reserved
@nqn: NVM Qualified Name
@traddr: Transport Address
@tsas: Transport Specific Address Subtype (&union nvmf_tsas)
@tel: Total Entry Length
@numexat: Number of Extended Attributes
@resv1030: Reserved
@exat: Extended Attributes 0 (&struct nvmf_ext_attr)
nvme_admin_passthru() - Submit an nvme passthrough command
@fd: File descriptor of nvme device
@opcode: The nvme io command to send
@flags: NVMe command flags (not used)
@rsvd: Reserved for future use
@nsid: Namespace identifier
@cdw2: Command dword 2
@cdw3: Command dword 3
@cdw10: Command dword 10
@cdw11: Command dword 11
@cdw12: Command dword 12
@cdw13: Command dword 13
@cdw14: Command dword 14
@cdw15: Command dword 15
@data_len: Length of the data transferred in this command in bytes
@data: Pointer to user address of the data buffer
@metadata_len:Length of metadata transferred in this command
@metadata: Pointer to user address of the metadata buffer
@timeout_ms: How long the kernel waits for the command to complete
@result: Optional field to return the result from the CQE dword 0
nvme_admin_passthru64() - Submit a 64-bit nvme passthrough command
@fd: File descriptor of nvme device
@opcode: The nvme io command to send
@flags: NVMe command flags (not used)
@rsvd: Reserved for future use
@nsid: Namespace identifier
@cdw2: Command dword 2
@cdw3: Command dword 3
@cdw10: Command dword 10
@cdw11: Command dword 11
@cdw12: Command dword 12
@cdw13: Command dword 13
@cdw14: Command dword 14
@cdw15: Command dword 15
@data_len: Length of the data transferred in this command in bytes
@data: Pointer to user address of the data buffer
@metadata_len:Length of metadata transferred in this command
@metadata: Pointer to user address of the metadata buffer
@timeout_ms: How long the kernel waits for the command to complete
@result: Optional field to return the result from the CQE dword 0
nvme_clear_etdas() - Clear the Extended Telemetry Data Area 4 Supported bit
@fd: File descriptor of nvme device
@changed: boolean to indicate whether or not the host
behavior support feature had been changed
nvme_create_ctrl() - Allocate an unconnected NVMe controller
@r: NVMe root element
@subsysnqn: Subsystem NQN
@transport: Transport type
@traddr: Transport address
@host_traddr: Host transport address
@host_iface: Host interface name
@trsvcid: Transport service ID
nvme_ctrl_config_match() - Check if ctrl @c matches config params
@c: An existing controller instance
@transport: Transport name
@traddr: Transport address
@trsvcid: Transport service identifier
@subsysnqn: Subsystem NQN
@host_traddr: Host transport address
@host_iface: Host interface name
nvme_ctrl_find() - Locate an existing controller
@s: &nvme_subsystem_t object
@transport: Transport name
@traddr: Transport address
@trsvcid: Transport service identifier
@subsysnqn: Subsystem NQN
@host_traddr: Host transport address
@host_iface: Host interface name
nvme_ctrl_get_src_addr() - Extract src_addr from the c->address string
@c: Controller instance
@src_addr: Where to copy the src_addr. Size must be at least INET6_ADDRSTRLEN.
@src_addr_len: Length of the buffer @src_addr.
nvme_ctrl_set_dhchap_key() - Set controller key
@c: Controller for which the key should be set
@key: DH-HMAC-CHAP Key to set or NULL to clear existing key
nvme_ctrl_set_tls_key() - Set Derive TLS PSK
@c: Controller for which the key should be set
@key: Key in interchange format or NULL to clear existing key
nvme_ctrl_set_tls_key_identity() - Set Derive TLS Identity
@c: Controller for which the key should be set
@identity: Derive TLS identity or NULL to clear existing key
nvme_export_tls_key_versioned() - Export a TLS pre-shared key
@version: Indicated the representation of the TLS PSK
@hmac: HMAC algorithm used to transfor the configured PSK
in a retained PSK
@key_data: Raw data of the key
@key_len: Length of @key_data
nvme_fw_download_seq() - Firmware download sequence
@fd: File descriptor of nvme device
@size: Total size of the firmware image to transfer
@xfer: Maximum size to send with each partial transfer
@offset: Starting offset to send with this firmware download
@buf: Address of buffer containing all or part of the firmware image.
nvme_generate_tls_key_identity() - Generate the TLS key identity
@hostnqn: Host NVMe Qualified Name
@subsysnqn: Subsystem NVMe Qualified Name
@version: Key version to use
@hmac: HMAC algorithm
@configured_key: Configured key data to derive the key from
@key_len: Length of @configured_key
nvme_generate_tls_key_identity_compat() - Generate the TLS key identity
@hostnqn: Host NVMe Qualified Name
@subsysnqn: Subsystem NVMe Qualified Name
@version: Key version to use
@hmac: HMAC algorithm
@configured_key: Configured key data to derive the key from
@key_len: Length of @configured_key
nvme_get_ana_log_atomic() - Retrieve Asymmetric Namespace Access log page atomically
@fd: File descriptor of nvme device
@rgo: Whether to retrieve ANA groups only (no NSIDs)
@rae: Whether to retain asynchronous events
@retries: The maximum number of times to retry on log page changes
@log: Pointer to a buffer to receive the ANA log page
@len: Input: the length of the log page buffer.
Output: the actual length of the ANA log page.
nvme_get_ana_log_len() - Retrieve size of the current ANA log
@fd: File descriptor of nvme device
@analen: Pointer to where the length will be set on success
nvme_get_ana_log_len_from_id_ctrl() - Retrieve maximum possible ANA log size
@id_ctrl: Controller identify data
@rgo: If true, return maximum log page size without NSIDs
nvme_get_ctrl_telemetry() - Get controller telemetry log
@fd: File descriptor of nvme device
@rae: Retain asynchronous events
@log: On success, set to the value of the allocated and retrieved log.
@da: Log page data area, valid values: &enum nvme_telemetry_da
@size: Ptr to the telemetry log size, so it can be returned
nvme_get_directive_receive_length() - Get directive receive length
@dtype: Directive type, see &enum nvme_directive_dtype
@doper: Directive receive operation, see &enum nvme_directive_receive_doper
@len: On success, set to this directives payload length in bytes.
nvme_get_feature_length() - Retreive the command payload length for a
specific feature identifier
@fid: Feature identifier, see &enum nvme_features_id.
@cdw11: The cdw11 value may affect the transfer (only known fid is
%NVME_FEAT_FID_HOST_ID)
@len: On success, set to this features payload length in bytes.
nvme_get_feature_length2() - Retreive the command payload length for a
specific feature identifier
@fid: Feature identifier, see &enum nvme_features_id.
@cdw11: The cdw11 value may affect the transfer (only known fid is
%NVME_FEAT_FID_HOST_ID)
@dir: Data transfer direction: false - host to controller, true -
controller to host may affect the transfer (only known fid is
%NVME_FEAT_FID_HOST_MEM_BUF).
@len: On success, set to this features payload length in bytes.
nvme_get_features_arbitration() - Get arbitration feature
@fd: File descriptor of nvme device
@sel: Select which type of attribute to return, see &enum nvme_get_features_sel
@result: The command completion result from CQE dword0
nvme_get_features_async_event() - Get asynchronous event feature
@fd: File descriptor of nvme device
@sel: Select which type of attribute to return, see &enum nvme_get_features_sel
@result: The command completion result from CQE dword0
nvme_get_features_auto_pst() - Get autonomous power state feature
@fd: File descriptor of nvme device
@sel: Select which type of attribute to return, see &enum nvme_get_features_sel
@apst:
@result: The command completion result from CQE dword0
nvme_get_features_endurance_event_cfg() - Get endurance event config feature
@fd: File descriptor of nvme device
@sel: Select which type of attribute to return, see &enum nvme_get_features_sel
@endgid: Endurance Group Identifier
@result: The command completion result from CQE dword0
nvme_get_features_err_recovery2() - Get error recovery feature
@fd: File descriptor of nvme device
@sel: Select which type of attribute to return, see &enum nvme_get_features_sel
@nsid: Namespace ID
@result: The command completion result from CQE dword0
nvme_get_features_hctm() - Get thermal management feature
@fd: File descriptor of nvme device
@sel: Select which type of attribute to return, see &enum nvme_get_features_sel
@result: The command completion result from CQE dword0
nvme_get_features_host_behavior() - Get host behavior feature
@fd: File descriptor of nvme device
@sel: Select which type of attribute to return, see &enum nvme_get_features_sel
@data: Pointer to structure nvme_feat_host_behavior
@result: The command completion result from CQE dword0
nvme_get_features_host_id() - Get host id feature
@fd: File descriptor of nvme device
@sel: Select which type of attribute to return, see &enum nvme_get_features_sel
@exhid: Enable Extended Host Identifier
@len: Length of @hostid
@hostid: Buffer for returned host ID
nvme_get_features_host_mem_buf2() - Get host memory buffer feature
@fd: File descriptor of nvme device
@sel: Select which type of attribute to return, see &enum nvme_get_features_sel
@attrs: Buffer for returned Host Memory Buffer Attributes
@result: The command completion result from CQE dword0
nvme_get_features_iocs_profile() - Get IOCS profile feature
@fd: File descriptor of nvme device
@sel: Select which type of attribute to return, see &enum nvme_get_features_sel
@result: The command completion result from CQE dword0
nvme_get_features_irq_coalesce() - Get IRQ coalesce feature
@fd: File descriptor of nvme device
@sel: Select which type of attribute to return, see &enum nvme_get_features_sel
@result: The command completion result from CQE dword0
nvme_get_features_irq_config() - Get IRQ config feature
@fd: File descriptor of nvme device
@sel: Select which type of attribute to return, see &enum nvme_get_features_sel
@iv:
@result: The command completion result from CQE dword0
nvme_get_features_kato() - Get keep alive timeout feature
@fd: File descriptor of nvme device
@sel: Select which type of attribute to return, see &enum nvme_get_features_sel
@result: The command completion result from CQE dword0
nvme_get_features_lba_range2() - Get LBA range feature
@fd: File descriptor of nvme device
@sel: Select which type of attribute to return, see &enum nvme_get_features_sel
@nsid: Namespace ID
@data: Buffer to receive LBA Range Type data structure
@result: The command completion result from CQE dword0
nvme_get_features_lba_sts_interval() - Get LBA status information feature
@fd: File descriptor of nvme device
@sel: Select which type of attribute to return, see &enum nvme_get_features_sel
@result: The command completion result from CQE dword0
nvme_get_features_nopsc() - Get non-operational power state feature
@fd: File descriptor of nvme device
@sel: Select which type of attribute to return, see &enum nvme_get_features_sel
@result: The command completion result from CQE dword0
nvme_get_features_num_queues() - Get number of queues feature
@fd: File descriptor of nvme device
@sel: Select which type of attribute to return, see &enum nvme_get_features_sel
@result: The command completion result from CQE dword0
nvme_get_features_plm_config() - Get predictable latency feature
@fd: File descriptor of nvme device
@sel: Select which type of attribute to return, see &enum nvme_get_features_sel
@nvmsetid: NVM set id
@data:
@result: The command completion result from CQE dword0
nvme_get_features_plm_window() - Get window select feature
@fd: File descriptor of nvme device
@sel: Select which type of attribute to return, see &enum nvme_get_features_sel
@nvmsetid: NVM set id
@result: The command completion result from CQE dword0
nvme_get_features_power_mgmt() - Get power management feature
@fd: File descriptor of nvme device
@sel: Select which type of attribute to return, see &enum nvme_get_features_sel
@result: The command completion result from CQE dword0
nvme_get_features_resv_mask2() - Get reservation mask feature
@fd: File descriptor of nvme device
@sel: Select which type of attribute to return, see &enum nvme_get_features_sel
@nsid: Namespace ID
@result: The command completion result from CQE dword0
nvme_get_features_resv_persist2() - Get reservation persist feature
@fd: File descriptor of nvme device
@sel: Select which type of attribute to return, see &enum nvme_get_features_sel
@nsid: Namespace ID
@result: The command completion result from CQE dword0
nvme_get_features_rrl() - Get read recovery level feature
@fd: File descriptor of nvme device
@sel: Select which type of attribute to return, see &enum nvme_get_features_sel
@result: The command completion result from CQE dword0
nvme_get_features_sanitize() - Get sanitize feature
@fd: File descriptor of nvme device
@sel: Select which type of attribute to return, see &enum nvme_get_features_sel
@result: The command completion result from CQE dword0
nvme_get_features_sw_progress() - Get software progress feature
@fd: File descriptor of nvme device
@sel: Select which type of attribute to return, see &enum nvme_get_features_sel
@result: The command completion result from CQE dword0
nvme_get_features_temp_thresh() - Get temperature threshold feature
@fd: File descriptor of nvme device
@sel: Select which type of attribute to return, see &enum nvme_get_features_sel
@result: The command completion result from CQE dword0
nvme_get_features_temp_thresh2() - Get temperature threshold feature
@fd: File descriptor of nvme device
@sel: Select which type of attribute to return, see &enum nvme_get_features_sel
@tmpsel: Threshold Temperature Select
@thsel: Threshold Type Select
@result: The command completion result from CQE dword0
nvme_get_features_timestamp() - Get timestamp feature
@fd: File descriptor of nvme device
@sel: Select which type of attribute to return, see &enum nvme_get_features_sel
@ts: Current timestamp
nvme_get_features_volatile_wc() - Get volatile write cache feature
@fd: File descriptor of nvme device
@sel: Select which type of attribute to return, see &enum nvme_get_features_sel
@result: The command completion result from CQE dword0
nvme_get_features_write_atomic() - Get write atomic feature
@fd: File descriptor of nvme device
@sel: Select which type of attribute to return, see &enum nvme_get_features_sel
@result: The command completion result from CQE dword0
nvme_get_features_write_protect() - Get write protect feature
@fd: File descriptor of nvme device
@nsid: Namespace ID
@sel: Select which type of attribute to return, see &enum nvme_get_features_sel
@result: The command completion result from CQE dword0
nvme_get_host_telemetry() - Get host telemetry log
@fd: File descriptor of nvme device
@log: On success, set to the value of the allocated and retrieved log.
@da: Log page data area, valid values: &enum nvme_telemetry_da
@size: Ptr to the telemetry log size, so it can be returned
nvme_get_lba_status_log() - Retrieve the LBA Status log page
@fd: File descriptor of the nvme device
@rae: Retain asynchronous events
@log: On success, set to the value of the allocated and retrieved log.
nvme_get_log_page() - Get log page data
@fd: File descriptor of nvme device
@xfer_len: Max log transfer size per request to split the total.
@args: &struct nvme_get_log_args argument structure
nvme_get_logging_level() - Get current logging level
@r: nvme_root_t context
@log_pid: Pointer to store a current value of logging of
the PID flag at (optional).
@log_tstamp: Pointer to store a current value of logging of
the timestamp flag at (optional).
nvme_get_logical_block_size() - Retrieve block size
@fd: File descriptor of nvme device
@nsid: Namespace id
@blksize: Pointer to where the block size will be set on success
nvme_get_new_host_telemetry() - Get new host telemetry log
@fd: File descriptor of nvme device
@log: On success, set to the value of the allocated and retrieved log.
@da: Log page data area, valid values: &enum nvme_telemetry_da
@size: Ptr to the telemetry log size, so it can be returned
nvme_get_telemetry_log() - Get specified telemetry log
@fd: File descriptor of nvme device
@create: Generate new host initated telemetry capture
@ctrl: Get controller Initiated log
@rae: Retain asynchronous events
@max_data_tx: Set the max data transfer size to be used retrieving telemetry.
@da: Log page data area, valid values: &enum nvme_telemetry_da.
@log: On success, set to the value of the allocated and retrieved log.
@size: Ptr to the telemetry log size, so it can be returned
nvme_get_telemetry_max() - Get telemetry limits
@fd: File descriptor of nvme device
@da: On success return max supported data area
@max_data_tx: On success set to max transfer chunk supported by the controller
nvme_host_is_pdc_enabled() - Is Persistenct Discovery Controller enabled
@h: Host which to check if PDC is enabled
@fallback: The fallback default value of the flag when
@nvme_host_set_pdc_enabled has not be used
to set the flag.
nvme_host_set_pdc_enabled() - Set Persistent Discovery Controller flag
@h: Host for which the falg should be set
@enabled: The bool to set the enabled flag
nvme_iface_primary_addr_matches - Check that interface’s primary address matches
@iface_list: Interface list returned by getifaddrs()
@iface: Interface to match
@addr: Address to match
nvme_import_tls_key() - Import a TLS key
@encoded_key: TLS key in PSK interchange format
@key_len: Length of the resulting key data
@hmac: HMAC algorithm
nvme_import_tls_key_versioned() - Import a TLS key
@encoded_key: TLS key in PSK interchange format
@version: Indicated the representation of the TLS PSK
@hmac: HMAC algorithm used to transfor the configured
PSK in a retained PSK
@key_len: Length of the resulting key data
nvme_init_copy_range() - Constructs a copy range structure
@copy: Copy range array
@nlbs: Number of logical blocks
@slbas: Starting LBA
@eilbrts: Expected initial logical block reference tag
@elbatms: Expected logical block application tag mask
@elbats: Expected logical block application tag
@nr: Number of descriptors to construct
nvme_init_copy_range_f1() - Constructs a copy range f1 structure
@copy: Copy range array
@nlbs: Number of logical blocks
@slbas: Starting LBA
@eilbrts: Expected initial logical block reference tag
@elbatms: Expected logical block application tag mask
@elbats: Expected logical block application tag
@nr: Number of descriptors to construct
nvme_init_copy_range_f2() - Constructs a copy range f2 structure
@copy: Copy range array
@snsids: Source namespace identifier
@nlbs: Number of logical blocks
@slbas: Starting LBA
@sopts: Source options
@eilbrts: Expected initial logical block reference tag
@elbatms: Expected logical block application tag mask
@elbats: Expected logical block application tag
@nr: Number of descriptors to construct
nvme_init_copy_range_f3() - Constructs a copy range f3 structure
@copy: Copy range array
@snsids: Source namespace identifier
@nlbs: Number of logical blocks
@slbas: Starting LBA
@sopts: Source options
@eilbrts: Expected initial logical block reference tag
@elbatms: Expected logical block application tag mask
@elbats: Expected logical block application tag
@nr: Number of descriptors to construct
nvme_init_ctrl_list() - Initialize an nvme_ctrl_list structure from an array.
@cntlist: The controller list structure to initialize
@num_ctrls: The number of controllers in the array, &ctrlist.
@ctrlist: An array of controller identifiers in CPU native endian.
nvme_init_default_logging() - Initialize default (fallback) logging
@fp: File descriptor for logging messages
@lvl: Logging level to set
@log_pid: Boolean to enable logging of the PID
@log_tstamp: Boolean to enable logging of the timestamp
nvme_init_dsm_range() - Constructs a data set range structure
@dsm: DSM range array
@ctx_attrs: Array of context attributes
@llbas: Array of length in logical blocks
@slbas: Array of starting logical blocks
@nr_ranges: The size of the dsm arrays
nvme_init_logging() - Initialize logging
@r: nvme_root_t context
@lvl: Logging level to set
@log_pid: Boolean to enable logging of the PID
@log_tstamp: Boolean to enable logging of the timestamp
nvme_insert_tls_key() - Derive and insert TLS key
@keyring: Keyring to use
@key_type: Type of the resulting key
@hostnqn: Host NVMe Qualified Name
@subsysnqn: Subsystem NVMe Qualified Name
@hmac: HMAC algorithm
@configured_key: Configured key data to derive the key from
@key_len: Length of @configured_key
nvme_insert_tls_key_compat() - Derive and insert TLS key
@keyring: Keyring to use
@key_type: Type of the resulting key
@hostnqn: Host NVMe Qualified Name
@subsysnqn: Subsystem NVMe Qualified Name
@version: Key version to use
@hmac: HMAC algorithm
@configured_key: Configured key data to derive the key from
@key_len: Length of @configured_key
nvme_insert_tls_key_versioned() - Derive and insert TLS key
@keyring: Keyring to use
@key_type: Type of the resulting key
@hostnqn: Host NVMe Qualified Name
@subsysnqn: Subsystem NVMe Qualified Name
@version: Key version to use
@hmac: HMAC algorithm
@configured_key: Configured key data to derive the key from
@key_len: Length of @configured_key
nvme_io_passthru() - Submit an nvme io passthrough command
@fd: File descriptor of nvme device
@opcode: The nvme io command to send
@flags: NVMe command flags (not used)
@rsvd: Reserved for future use
@nsid: Namespace identifier
@cdw2: Command dword 2
@cdw3: Command dword 3
@cdw10: Command dword 10
@cdw11: Command dword 11
@cdw12: Command dword 12
@cdw13: Command dword 13
@cdw14: Command dword 14
@cdw15: Command dword 15
@data_len: Length of the data transferred in this command in bytes
@data: Pointer to user address of the data buffer
@metadata_len:Length of metadata transferred in this command
@metadata: Pointer to user address of the metadata buffer
@timeout_ms: How long the kernel waits for the command to complete
@result: Optional field to return the result from the CQE dword 0
nvme_io_passthru64() - Submit an nvme io passthrough command
@fd: File descriptor of nvme device
@opcode: The nvme io command to send
@flags: NVMe command flags (not used)
@rsvd: Reserved for future use
@nsid: Namespace identifier
@cdw2: Command dword 2
@cdw3: Command dword 3
@cdw10: Command dword 10
@cdw11: Command dword 11
@cdw12: Command dword 12
@cdw13: Command dword 13
@cdw14: Command dword 14
@cdw15: Command dword 15
@data_len: Length of the data transferred in this command in bytes
@data: Pointer to user address of the data buffer
@metadata_len:Length of metadata transferred in this command
@metadata: Pointer to user address of the metadata buffer
@timeout_ms: How long the kernel waits for the command to complete
@result: Optional field to return the result from the CQE dword 0
nvme_lm_get_features_ctrl_data_queue - Get Controller Data Queue feature
@fd: File descriptor of nvme device
@cdqid: Controller Data Queue ID (CDQID)
@data: Get Controller Data Queue feature data
@result: The command completions result from CQE dword0
nvme_lm_set_features_ctrl_data_queue - Set Controller Datea Queue feature
@fd: File descriptor of nvme device
@cdqid: Controller Data Queue ID (CDQID)
@hp: Head Pointer
@tpt: Tail Pointer Trigger
@etpt: Enable Tail Pointer Trigger
@result: The command completions result from CQE dword0
nvme_lookup_ctrl() - Lookup nvme_ctrl_t object
@s: &nvme_subsystem_t object
@transport: Transport name
@traddr: Transport address
@host_traddr: Host transport address
@host_iface: Host interface name
@trsvcid: Transport service identifier
@p: Previous controller instance
nvme_namespace_attach_ctrls() - Attach namespace to controller(s)
@fd: File descriptor of nvme device
@nsid: Namespace ID to attach
@num_ctrls: Number of controllers in ctrlist
@ctrlist: List of controller IDs to perform the attach action
nvme_namespace_detach_ctrls() - Detach namespace from controller(s)
@fd: File descriptor of nvme device
@nsid: Namespace ID to detach
@num_ctrls: Number of controllers in ctrlist
@ctrlist: List of controller IDs to perform the detach action
nvme_ns_compare() - Compare data on a namespace
@n: Namespace instance
@buf: Buffer with data to be compared
@offset: LBA offset of @n
@count: Number of sectors in @buf
nvme_ns_read() - Read from a namespace
@n: Namespace instance
@buf: Buffer into which the data will be transferred
@offset: LBA offset of @n
@count: Number of sectors in @buf
nvme_ns_write() - Write to a namespace
@n: Namespace instance
@buf: Buffer with data to be written
@offset: LBA offset of @n
@count: Number of sectors in @buf
nvme_ns_write_uncorrectable() - Issus a ‘write uncorrectable’ command
@n: Namespace instance
@offset: LBA offset in @n
@count: Number of sectors to be written
nvme_scan_tls_keys() - Iterate over TLS keys in a keyring
@keyring: Keyring holding TLS keys
@cb: Callback function
@data: Pointer for data to be passed to @cb
nvme_set_etdas() - Set the Extended Telemetry Data Area 4 Supported bit
@fd: File descriptor of nvme device
@changed: boolean to indicate whether or not the host
behavior support feature had been changed
nvme_set_features_arbitration() - Set arbitration features
@fd: File descriptor of nvme device
@ab: Arbitration Burst
@lpw: Low Priority Weight
@mpw: Medium Priority Weight
@hpw: High Priority Weight
@save: Save value across power states
@result: The command completion result from CQE dword0
nvme_set_features_async_event() - Set asynchronous event feature
@fd: File descriptor of nvme device
@events: Events to enable
@save: Save value across power states
@result: The command completion result from CQE dword0
nvme_set_features_auto_pst() - Set autonomous power state feature
@fd: File descriptor of nvme device
@apste: Autonomous Power State Transition Enable
@apst: Autonomous Power State Transition
@save: Save value across power states
@result: The command completion result from CQE dword0
nvme_set_features_endurance_evt_cfg() - Set endurance event config feature
@fd: File descriptor of nvme device
@endgid: Endurance Group Identifier
@egwarn: Flags to enable warning, see &enum nvme_eg_critical_warning_flags
@save: Save value across power states
@result: The command completion result from CQE dword0
nvme_set_features_err_recovery() - Set error recovery feature
@fd: File descriptor of nvme device
@nsid: Namespace ID
@tler: Time-limited error recovery value
@dulbe: Deallocated or Unwritten Logical Block Error Enable
@save: Save value across power states
@result: The command completion result from CQE dword0
nvme_set_features_hctm() - Set thermal management feature
@fd: File descriptor of nvme device
@tmt2: Thermal Management Temperature 2
@tmt1: Thermal Management Temperature 1
@save: Save value across power states
@result: The command completion result from CQE dword0
nvme_set_features_host_behavior() - Set host behavior feature
@fd: File descriptor of nvme device
@save: Save value across power states
@data: Pointer to structure nvme_feat_host_behavior
nvme_set_features_host_id() - Set enable extended host identifiers feature
@fd: File descriptor of nvme device
@exhid: Enable Extended Host Identifier
@save: Save value across power states
@hostid: Host ID to set
nvme_set_features_iocs_profile() - Set I/O command set profile feature
@fd: File descriptor of nvme device
@iocsi: I/O Command Set Combination Index
@save: Save value across power states
nvme_set_features_irq_coalesce() - Set IRQ coalesce feature
@fd: File descriptor of nvme device
@thr: Aggregation Threshold
@time: Aggregation Time
@save: Save value across power states
@result: The command completion result from CQE dword0
nvme_set_features_irq_config() - Set IRQ config feature
@fd: File descriptor of nvme device
@iv: Interrupt Vector
@cd: Coalescing Disable
@save: Save value across power states
@result: The command completion result from CQE dword0
nvme_set_features_lba_range() - Set LBA range feature
@fd: File descriptor of nvme device
@nsid: Namespace ID
@nr_ranges: Number of ranges in @data
@save: Save value across power states
@data: User address of feature data
@result: The command completion result from CQE dword0
nvme_set_features_lba_sts_interval() - Set LBA status information feature
@fd: File descriptor of nvme device
@save: Save value across power states
@lsiri: LBA Status Information Report Interval
@lsipi: LBA Status Information Poll Interval
@result: The command completion result from CQE dword0
nvme_set_features_nopsc() - Set non-operational power state feature
@fd: File descriptor of nvme device
@noppme: Non-Operational Power State Permissive Mode Enable
@save: Save value across power states
@result: The command completion result from CQE dword0
nvme_set_features_plm_config() - Set predictable latency feature
@fd: File descriptor of nvme device
@enable: Predictable Latency Enable
@nvmsetid: NVM Set Identifier
@save: Save value across power states
@data: Pointer to structure nvme_plm_config
@result: The command completion result from CQE dword0
nvme_set_features_plm_window() - Set window select feature
@fd: File descriptor of nvme device
@sel: Window Select
@nvmsetid: NVM Set Identifier
@save: Save value across power states
@result: The command completion result from CQE dword0
nvme_set_features_power_mgmt() - Set power management feature
@fd: File descriptor of nvme device
@ps: Power State
@wh: Workload Hint
@save: Save value across power states
@result: The command completion result from CQE dword0
nvme_set_features_resv_mask2() - Set reservation notification mask feature
@fd: File descriptor of nvme device
@nsid: Namespace ID
@mask: Reservation Notification Mask Field
@save: Save value across power states
@result: The command completion result from CQE dword0
nvme_set_features_resv_persist2() - Set persist through power loss feature
@fd: File descriptor of nvme device
@nsid: Namespace ID
@ptpl: Persist Through Power Loss
@save: Save value across power states
@result: The command completion result from CQE dword0
nvme_set_features_rrl() - Set read recovery level feature
@fd: File descriptor of nvme device
@rrl: Read recovery level setting
@nvmsetid: NVM set id
@save: Save value across power states
@result: The command completion result from CQE dword0
nvme_set_features_sanitize() - Set sanitize feature
@fd: File descriptor of nvme device
@nodrm: No-Deallocate Response Mode
@save: Save value across power states
@result: The command completion result from CQE dword0
nvme_set_features_sw_progress() - Set pre-boot software load count feature
@fd: File descriptor of nvme device
@pbslc: Pre-boot Software Load Count
@save: Save value across power states
@result: The command completion result from CQE dword0
nvme_set_features_temp_thresh() - Set temperature threshold feature
@fd: File descriptor of nvme device
@tmpth: Temperature Threshold
@tmpsel: Threshold Temperature Select
@thsel: Threshold Type Select
@save: Save value across power states
@result: The command completion result from CQE dword0
nvme_set_features_temp_thresh2() - Set temperature threshold feature
@fd: File descriptor of nvme device
@tmpth: Temperature Threshold
@tmpsel: Threshold Temperature Select
@thsel: Threshold Type Select
@tmpthh: Temperature Threshold Hysteresis
@save: Save value across power states
@result: The command completion result from CQE dword0
nvme_set_features_timestamp() - Set timestamp feature
@fd: File descriptor of nvme device
@save: Save value across power states
@timestamp: The current timestamp value to assign to this feature
nvme_set_features_volatile_wc() - Set volatile write cache feature
@fd: File descriptor of nvme device
@wce: Write cache enable
@save: Save value across power states
@result: The command completion result from CQE dword0
nvme_set_features_write_atomic() - Set write atomic feature
@fd: File descriptor of nvme device
@dn: Disable Normal
@save: Save value across power states
@result: The command completion result from CQE dword0
nvme_set_features_write_protect2() - Set write protect feature
@fd: File descriptor of nvme device
@nsid: Namespace ID
@state: Write Protection State
@save: Save value across power states
@result: The command completion result from CQE dword0
nvme_status_to_errno() - Converts nvme return status to errno
@status: Return status from an nvme passthrough command
@fabrics: Set to true if &status is to a fabrics target.
nvme_status_to_string() - Returns string describing nvme return status.
@status: Return status from an nvme passthrough command
@fabrics: Set to true if &status is to a fabrics target.
nvme_submit_admin_passthru() - Submit an nvme passthrough admin command
@fd: File descriptor of nvme device
@cmd: The nvme admin command to send
@result: Optional field to return the result from the CQE DW0
nvme_submit_admin_passthru64() - Submit a 64-bit nvme passthrough admin
command
@fd: File descriptor of nvme device
@cmd: The nvme admin command to send
@result: Optional field to return the result from the CQE DW0-1
nvme_submit_io_passthru() - Submit an nvme passthrough command
@fd: File descriptor of nvme device
@cmd: The nvme io command to send
@result: Optional field to return the result from the CQE dword 0
@result: Optional field to return the result from the CQE DW0
nvme_submit_io_passthru64() - Submit a 64-bit nvme passthrough command
@fd: File descriptor of nvme device
@cmd: The nvme io command to send
@result: Optional field to return the result from the CQE DW0-1
nvme_submit_passthru - Low level ioctl wrapper for passthru commands
@fd: File descriptor of the nvme device
@ioctl_cmd: IOCTL command id
@cmd: Passhtru command
@result: Optional field to return the result
nvme_submit_passthru64 - Low level ioctl wrapper for passthru commands
@fd: File descriptor of the nvme device
@ioctl_cmd: IOCTL command id
@cmd: Passhtru command
@result: Optional field to return the result
nvme_update_key() - Update key raw data
@keyring_id: Id of the keyring holding %key_id
@key_type: Type of the key to insert
@identity: Key identity string
@key_data: Raw data of the key
@key_len: Length of @key_data
nvmf_add_ctrl() - Connect a controller and update topology
@h: Host to which the controller should be attached
@c: Controller to be connected
@cfg: Default configuration for the controller
nvmf_connect_disc_entry() - Connect controller based on the discovery log page entry
@h: Host to which the controller should be connected
@e: Discovery log page entry
@defcfg: Default configuration to be used for the new controller
@discover: Set to ‘true’ if the new controller is a discovery controller
nvmf_get_discovery_log() - Return the discovery log page
@c: Discovery controller to use
@logp: Pointer to the log page to be returned
@max_retries: Number of retries in case of failure
nvmf_hostnqn_generate() - Generate a machine specific host nqn
Returns: An nvm namespace qualified name string based on the machine
identifier, or NULL if not successful.
nvmf_register_ctrl() - Perform registration task with a DC
@c: Controller instance
@tas: Task field of the Command Dword 10 (cdw10). Indicates whether to
perform a Registration, Deregistration, or Registration-update.
@result: The command-specific result returned by the DC upon command
completion.
enum nbft_info_nid_type - Namespace Identifier Type (NIDT)
@NBFT_INFO_NID_TYPE_NONE: No identifier available.
@NBFT_INFO_NID_TYPE_EUI64: The EUI-64 identifier.
@NBFT_INFO_NID_TYPE_NGUID: The NSGUID identifier.
@NBFT_INFO_NID_TYPE_NS_UUID: The UUID identifier.
enum nbft_info_primary_admin_host_flag - Primary Administrative Host Descriptor Flags
@NBFT_INFO_PRIMARY_ADMIN_HOST_FLAG_NOT_INDICATED: Not Indicated by Driver: The driver
that created this NBFT provided no
administrative priority hint for
this NBFT.
@NBFT_INFO_PRIMARY_ADMIN_HOST_FLAG_UNSELECTED: Unselected: The driver that created
this NBFT explicitly indicated that
this NBFT should not be prioritized
over any other NBFT.
@NBFT_INFO_PRIMARY_ADMIN_HOST_FLAG_SELECTED: Selected: The driver that created
this NBFT explicitly indicated that
this NBFT should be prioritized over
any other NBFT.
@NBFT_INFO_PRIMARY_ADMIN_HOST_FLAG_RESERVED: Reserved.
enum nvme_ana_state - ANA Group Descriptor - Asymmetric Namespace Access State
@NVME_ANA_STATE_OPTIMIZED: ANA Optimized state
@NVME_ANA_STATE_NONOPTIMIZED: ANA Non-Optimized state
@NVME_ANA_STATE_INACCESSIBLE: ANA Inaccessible state
@NVME_ANA_STATE_PERSISTENT_LOSS: ANA Persistent Loss state
@NVME_ANA_STATE_CHANGE: ANA Change state
enum nvme_apst_entry - Autonomous Power State Transition
@NVME_APST_ENTRY_ITPS_SHIFT: Idle Transition Power State Shift
@NVME_APST_ENTRY_ITPT_SHIFT: Idle Time Prior to Transition Shift
@NVME_APST_ENTRY_ITPS_MASK: Idle Transition Power State Mask
@NVME_APST_ENTRY_ITPT_MASK: Idle Time Prior to Transition Mask
enum nvme_aqa - This field indicates the admin queue attributes
@NVME_AQA_ASQS_SHIFT: Shift amount to get the admin submission queue size
@NVME_AQA_ACQS_SHIFT: Shift amount to get the admin completion queue size
@NVME_AQA_ASQS_MASK: Mask to get the admin submission queue size
@NVME_AQA_ACQS_MASK: Mask to get the admin completion queue size
enum nvme_boot_partition_info - This field indicates the boot partition information
@NVME_BOOT_PARTITION_INFO_BPSZ_SHIFT: Shift amount to get the boot partition size from
the &struct nvme_boot_partition.bpinfo field.
@NVME_BOOT_PARTITION_INFO_ABPID_SHIFT: Shift amount to get the active boot partition ID
from the &struct nvme_boot_partition.bpinfo field.
@NVME_BOOT_PARTITION_INFO_BPSZ_MASK: Mask to get the boot partition size from the
&struct nvme_boot_partition.bpinfo field.
@NVME_BOOT_PARTITION_INFO_ABPID_MASK: Mask to get the active boot partition ID from the
&struct nvme_boot_partition.bpinfo field.
enum nvme_bpinfo - This field indicates the boot partition information
@NVME_BPINFO_BPSZ_SHIFT: Shift amount to get the boot partition size
@NVME_BPINFO_BRS_SHIFT: Shift amount to get the boot read status
@NVME_BPINFO_ABPID_SHIFT: Shift amount to get the active boot partition ID
@NVME_BPINFO_BPSZ_MASK: Mask to get the boot partition size
@NVME_BPINFO_BRS_MASK: Mask to get the boot read status
@NVME_BPINFO_ABPID_MASK: Mask to get the active boot partition ID
@NVME_BPINFO_BRS_NONE: No boot partition read operation requested
@NVME_BPINFO_BRS_READ_IN_PROGRESS: Boot partition read in progress
@NVME_BPINFO_BRS_READ_SUCCESS: Boot partition read completed successfully
@NVME_BPINFO_BRS_READ_ERROR: Error completing boot partition read
enum nvme_bpmbl - This field indicates the boot partition memory buffer location
@NVME_BPMBL_BMBBA_SHIFT: Shift amount to get the boot partition memory buffer base address
enum nvme_bprsel - This field indicates the boot partition read select
@NVME_BPRSEL_BPRSZ_SHIFT: Shift amount to get the boot partition read size
@NVME_BPRSEL_BPROF_SHIFT: Shift amount to get the boot partition read offset
@NVME_BPRSEL_BPID_SHIFT: Shift amount to get the boot partition identifier
@NVME_BPRSEL_BPRSZ_MASK: Mask to get the boot partition read size
@NVME_BPRSEL_BPROF_MASK: Mask to get the boot partition read offset
@NVME_BPRSEL_BPID_MASK: Mask to get the boot partition identifier
enum nvme_cap - This field indicates the controller capabilities register
@NVME_CAP_MQES_SHIFT: Shift amount to get the maximum queue entries supported
@NVME_CAP_CQR_SHIFT: Shift amount to get the contiguous queues required
@NVME_CAP_AMS_SHIFT: Shift amount to get the arbitration mechanism supported
@NVME_CAP_TO_SHIFT: Shift amount to get the timeout
@NVME_CAP_DSTRD_SHIFT: Shift amount to get the doorbell stride
@NVME_CAP_NSSRC_SHIFT: Shift amount to get the NVM subsystem reset supported
@NVME_CAP_CSS_SHIFT: Shift amount to get the command sets supported
@NVME_CAP_BPS_SHIFT: Shift amount to get the boot partition support
@NVME_CAP_CPS_SHIFT: Shift amount to get the controller power scope
@NVME_CAP_MPSMIN_SHIFT: Shift amount to get the memory page size minimum
@NVME_CAP_MPSMAX_SHIFT: Shift amount to get the memory page size maximum
@NVME_CAP_PMRS_SHIFT: Shift amount to get the persistent memory region supported
@NVME_CAP_CMBS_SHIFT: Shift amount to get the controller memory buffer supported
@NVME_CAP_NSSS_SHIFT: Shift amount to get the NVM subsystem shutdown supported
@NVME_CAP_CRMS_SHIFT: Shift amount to get the controller ready modes supported
@NVME_CAP_MQES_MASK: Mask to get the maximum queue entries supported
@NVME_CAP_CQR_MASK: Mask to get the contiguous queues required
@NVME_CAP_AMS_MASK: Mask to get the arbitration mechanism supported
@NVME_CAP_TO_MASK: Mask to get the timeout
@NVME_CAP_DSTRD_MASK: Mask to get the doorbell stride
@NVME_CAP_NSSRC_MASK: Mask to get the NVM subsystem reset supported
@NVME_CAP_CSS_MASK: Mask to get the command sets supported
@NVME_CAP_BPS_MASK: Mask to get the boot partition support
@NVME_CAP_CPS_MASK: Mask to get the controller power scope
@NVME_CAP_MPSMIN_MASK: Mask to get the memory page size minimum
@NVME_CAP_MPSMAX_MASK: Mask to get the memory page size maximum
@NVME_CAP_PMRS_MASK: Mask to get the persistent memory region supported
@NVME_CAP_CMBS_MASK: Mask to get the controller memory buffer supported
@NVME_CAP_NSSS_MASK: Mask to get the NVM subsystem shutdown supported
@NVME_CAP_CRMS_MASK: Mask to get the controller ready modes supported
@NVME_CAP_AMS_WRR: Weighted round robin with urgent priority class
@NVME_CAP_AMS_VS: Vendor specific
@NVME_CAP_CSS_NVM: NVM command set or a discovery controller
@NVME_CAP_CSS_CSI: Controller supports one or more I/O command sets
@NVME_CAP_CSS_ADMIN: No I/O command set is supported
@NVME_CAP_CPS_NONE: Not reported
@NVME_CAP_CPS_CTRL: Controller scope
@NVME_CAP_CPS_DOMAIN: Domain scope
@NVME_CAP_CPS_NVMS: NVM subsystem scope
@NVME_CAP_CRWMS: Controller ready with media support
@NVME_CAP_CRIMS: Controller ready independent of media support
enum nvme_cc - This field indicates the controller configuration
@NVME_CC_EN_SHIFT: Shift amount to get the enable
@NVME_CC_CSS_SHIFT: Shift amount to get the I/O command set selected
@NVME_CC_MPS_SHIFT: Shift amount to get the memory page size
@NVME_CC_AMS_SHIFT: Shift amount to get the arbitration mechanism selected
@NVME_CC_SHN_SHIFT: Shift amount to get the shutdown notification
@NVME_CC_IOSQES_SHIFT: Shift amount to get the I/O submission queue entry size
@NVME_CC_IOCQES_SHIFT: Shift amount to get the I/O completion queue entry size
@NVME_CC_CRIME_SHIFT: Shift amount to get the controller ready independent of media enable
@NVME_CC_EN_MASK: Mask to get the enable
@NVME_CC_CSS_MASK: Mask to get the I/O command set selected
@NVME_CC_MPS_MASK: Mask to get the memory page size
@NVME_CC_AMS_MASK: Mask to get the arbitration mechanism selected
@NVME_CC_SHN_MASK: Mask to get the shutdown notification
@NVME_CC_CRIME_MASK: Mask to get the I/O submission queue entry size
@NVME_CC_IOSQES_MASK: Mask to get the I/O completion queue entry size
@NVME_CC_IOCQES_MASK: Mask to get the controller ready independent of media enable
@NVME_CC_CSS_NVM: NVM command set
@NVME_CC_CSS_CSI: All supported I/O command sets
@NVME_CC_CSS_ADMIN: Admin command set only
@NVME_CC_AMS_RR: Round robin
@NVME_CC_AMS_WRRU: Weighted round robin with urgent priority class
@NVME_CC_AMS_VS: Vendor specific
@NVME_CC_SHN_NONE: No notification; no effect
@NVME_CC_SHN_NORMAL: Normal shutdown notification
@NVME_CC_SHN_ABRUPT: Abrupt shutdown notification
@NVME_CC_CRWME: Controller ready with media enable
@NVME_CC_CRIME: Controller ready independent of media enable
enum nvme_cmbebs - This field indicates the controller memory buffer elasticity buffer size
@NVME_CMBEBS_CMBSZU_SHIFT: Shift amount to get the CMB elasticity buffer size units
@NVME_CMBEBS_RBB_SHIFT: Shift amount to get the read bypass behavior
@NVME_CMBEBS_CMBWBZ_SHIFT: Shift amount to get the CMB elasiticity buffer size base
@NVME_CMBEBS_CMBSZU_MASK: Mask to get the CMB elasticity buffer size units
@NVME_CMBEBS_RBB_MASK: Mask to get the read bypass behavior
@NVME_CMBEBS_CMBWBZ_MASK: Mask to get the CMB elasiticity buffer size base
@NVME_CMBEBS_CMBSZU_B: Bytes granularity
@NVME_CMBEBS_CMBSZU_1K: 1 KiB granularity
@NVME_CMBEBS_CMBSZU_1M: 1 MiB granularity
@NVME_CMBEBS_CMBSZU_1G: 1 GiB granularity
enum nvme_cmbloc - This field indicates the controller memory buffer location
@NVME_CMBLOC_BIR_SHIFT: Shift amount to get the base indicator register
@NVME_CMBLOC_CQMMS_SHIFT: Shift amount to get the CMB queue mixed memory support
@NVME_CMBLOC_CQPDS_SHIFT: Shift amount to get the CMB queue physically discontiguous support
@NVME_CMBLOC_CDPLMS_SHIFT: Shift amount to get the CMB data pointer mixed locations support
@NVME_CMBLOC_CDPCILS_SHIFT: Shift amount to get the CMB data pointer and command independent locations support
@NVME_CMBLOC_CDMMMS_SHIFT: Shift amount to get the CMB data metadata mixed memory support
@NVME_CMBLOC_CQDA_SHIFT: Shift amount to get the CMB queue dword alignment
@NVME_CMBLOC_OFST_SHIFT: Shift amount to get the offset
@NVME_CMBLOC_BIR_MASK: Mask to get the base indicator register
@NVME_CMBLOC_CQMMS_MASK: Mask to get the CMB queue mixed memory support
@NVME_CMBLOC_CQPDS_MASK: Mask to get the CMB queue physically discontiguous support
@NVME_CMBLOC_CDPLMS_MASK: Mask to get the CMB data pointer mixed locations support
@NVME_CMBLOC_CDPCILS_MASK: Mask to get the CMB data pointer and command independent locations support
@NVME_CMBLOC_CDMMMS_MASK: Mask to get the CMB data metadata mixed memory support
@NVME_CMBLOC_CQDA_MASK: Mask to get the CMB queue dword alignment
@NVME_CMBLOC_OFST_MASK: Mask to get the offset
enum nvme_cmbmsc - This field indicates the controller memory buffer memory space control
@NVME_CMBMSC_CRE_SHIFT: Shift amount to get the capabilities registers enabled
@NVME_CMBMSC_CMSE_SHIFT: Shift amount to get the controller memory space enable
@NVME_CMBMSC_CBA_SHIFT: Shift amount to get the controller base address
@NVME_CMBMSC_CRE_MASK: Mask to get the capabilities registers enabled
@NVME_CMBMSC_CMSE_MASK: Mask to get the controller memory space enable
enum nvme_cmbsts - This field indicates the controller memory buffer status
@NVME_CMBSTS_CBAI_SHIFT: Shift amount to get the controller base address invalid
@NVME_CMBSTS_CBAI_MASK: Mask to get the controller base address invalid
enum nvme_cmbswtp - This field indicates the controller memory buffer sustained write throughput
@NVME_CMBSWTP_CMBSWTU_SHIFT: Shift amount to get the CMB sustained write throughput units
@NVME_CMBSWTP_CMBSWTV_SHIFT: Shift amount to get the CMB sustained write throughput
@NVME_CMBSWTP_CMBSWTU_MASK: Mask to get the CMB sustained write throughput units
@NVME_CMBSWTP_CMBSWTV_MASK: Mask to get the CMB sustained write throughput
@NVME_CMBSWTP_CMBSWTU_B: Bytes/second granularity
@NVME_CMBSWTP_CMBSWTU_1K: 1 KiB/second granularity
@NVME_CMBSWTP_CMBSWTU_1M: 1 MiB/second granularity
@NVME_CMBSWTP_CMBSWTU_1G: 1 GiB/second granularity
enum nvme_cmbsz - This field indicates the controller memory buffer size
@NVME_CMBSZ_SQS_SHIFT: Shift amount to get the submission queue support
@NVME_CMBSZ_CQS_SHIFT: Shift amount to get the completion queue support
@NVME_CMBSZ_LISTS_SHIFT: Shift amount to get the PLP SGL list support
@NVME_CMBSZ_RDS_SHIFT: Shift amount to get the read data support
@NVME_CMBSZ_WDS_SHIFT: Shift amount to get the write data support
@NVME_CMBSZ_SZU_SHIFT: Shift amount to get the size units
@NVME_CMBSZ_SZ_SHIFT: Shift amount to get the size
@NVME_CMBSZ_SQS_MASK: Mask to get the submission queue support
@NVME_CMBSZ_CQS_MASK: Mask to get the completion queue support
@NVME_CMBSZ_LISTS_MASK: Mask to get the PLP SGL list support
@NVME_CMBSZ_RDS_MASK: Mask to get the read data support
@NVME_CMBSZ_WDS_MASK: Mask to get the write data support
@NVME_CMBSZ_SZU_MASK: Mask to get the size units
@NVME_CMBSZ_SZ_MASK: Mask to get the size
@NVME_CMBSZ_SZU_4K: 4 KiB
@NVME_CMBSZ_SZU_64K: 64 KiB
@NVME_CMBSZ_SZU_1M: 1 MiB
@NVME_CMBSZ_SZU_16M: 16 MiB
@NVME_CMBSZ_SZU_256M: 256 MiB
@NVME_CMBSZ_SZU_4G: 4 GiB
@NVME_CMBSZ_SZU_64G: 64 GiB
enum nvme_cmd_format_mset - Format NVM - Metadata Settings
@NVME_FORMAT_MSET_SEPARATE: indicates that the metadata is transferred
as part of a separate buffer.
@NVME_FORMAT_MSET_EXTENDED: indicates that the metadata is transferred
as part of an extended data LBA.
enum nvme_cmd_format_pi - Format NVM - Protection Information
@NVME_FORMAT_PI_DISABLE: Protection information is not enabled.
@NVME_FORMAT_PI_TYPE1: Protection information is enabled, Type 1.
@NVME_FORMAT_PI_TYPE2: Protection information is enabled, Type 2.
@NVME_FORMAT_PI_TYPE3: Protection information is enabled, Type 3.
enum nvme_cmd_format_pil - Format NVM - Protection Information Location
@NVME_FORMAT_PIL_LAST: Protection information is transferred as the last
bytes of metadata.
@NVME_FORMAT_PIL_FIRST: Protection information is transferred as the first
bytes of metadata.
enum nvme_cmd_format_ses - Format NVM - Secure Erase Settings
@NVME_FORMAT_SES_NONE: No secure erase operation requested.
@NVME_FORMAT_SES_USER_DATA_ERASE: User Data Erase: All user data shall be erased,
contents of the user data after the erase is
indeterminate (e.g. the user data may be zero
filled, one filled, etc.). If a User Data Erase
is requested and all affected user data is
encrypted, then the controller is allowed
to use a cryptographic erase to perform
the requested User Data Erase.
@NVME_FORMAT_SES_CRYPTO_ERASE: Cryptographic Erase: All user data shall
be erased cryptographically. This is
accomplished by deleting the encryption key.
enum nvme_cmd_get_log_telemetry_host_lsp - Telemetry Host-Initiated log specific field
@NVME_LOG_TELEM_HOST_LSP_RETAIN: Get Telemetry Data Blocks
@NVME_LOG_TELEM_HOST_LSP_CREATE: Create Telemetry Data Blocks
enum nvme_cmic - This field indicates the controller multi-path I/O and NS sharing capabilities
@NVME_CMIC_MULTI_PORT_SHIFT: Shift amount to get the NVM subsystem port
@NVME_CMIC_MULTI_CTRL_SHIFT: Shift amount to get the controllers
@NVME_CMIC_MULTI_SRIOV_SHIFT: Shift amount to get the SR-IOV virtual function
@NVME_CMIC_MULTI_ANA_SHIFT: Shift amount to get the asymmetric namespace access reporting
@NVME_CMIC_MULTI_RSVD_SHIFT: Shift amount to get the reserved
@NVME_CMIC_MULTI_PORT_MASK: Mask to get the NVM subsystem port
@NVME_CMIC_MULTI_CTRL_MASK: Mask to get the controllers
@NVME_CMIC_MULTI_SRIOV_MASK: Mask to get the SR-IOV virtual function
@NVME_CMIC_MULTI_ANA_MASK: Mask to get the asymmetric namespace access reporting
@NVME_CMIC_MULTI_RSVD_MASK: Mask to get the reserved
enum nvme_connect_err - nvme connect error codes
@ENVME_CONNECT_RESOLVE: failed to resolve host
@ENVME_CONNECT_ADDRFAM: unrecognized address family
@ENVME_CONNECT_TRADDR: failed to get traddr
@ENVME_CONNECT_TARG: need a transport (-t) argument
@ENVME_CONNECT_AARG: need a address (-a) argument
@ENVME_CONNECT_OPEN: failed to open nvme-fabrics device
@ENVME_CONNECT_WRITE: failed to write to nvme-fabrics device
@ENVME_CONNECT_READ: failed to read from nvme-fabrics device
@ENVME_CONNECT_PARSE: failed to parse ctrl info
@ENVME_CONNECT_INVAL_TR: invalid transport type
@ENVME_CONNECT_LOOKUP_SUBSYS_NAME: failed to lookup subsystem name
@ENVME_CONNECT_LOOKUP_SUBSYS: failed to lookup subsystem
@ENVME_CONNECT_ALREADY: the connect attempt failed, already connected
@ENVME_CONNECT_INVAL: invalid arguments/configuration
@ENVME_CONNECT_ADDRINUSE: hostnqn already in use
@ENVME_CONNECT_NODEV: invalid interface
@ENVME_CONNECT_OPNOTSUPP: not supported
@ENVME_CONNECT_CONNREFUSED: connection refused
@ENVME_CONNECT_ADDRNOTAVAIL: cannot assign requested address
@ENVME_CONNECT_IGNORED: connect attempt is ignored due to configuration
@ENVME_CONNECT_NOKEY: the TLS key is missing
enum nvme_constants - A place to stash various constant nvme values
@NVME_NSID_ALL: A broadcast value that is used to specify all
namespaces
@NVME_NSID_NONE: The invalid namespace id, for when the nsid
parameter is not used in a command
@NVME_UUID_NONE: Use to omit a uuid command parameter
@NVME_CNTLID_NONE: Use to omit a cntlid command parameter
@NVME_CNSSPECID_NONE: Use to omit a cns_specific_id command parameter
@NVME_LOG_LSP_NONE: Use to omit a log lsp command parameter
@NVME_LOG_LSI_NONE: Use to omit a log lsi command parameter
@NVME_LOG_LPO_NONE: Use to omit a log lpo command parameter
@NVME_IDENTIFY_DATA_SIZE: The transfer size for nvme identify commands
@NVME_LOG_SUPPORTED_LOG_PAGES_MAX: The largest possible index in the supported
log pages log.
@NVME_ID_NVMSET_LIST_MAX: The largest possible nvmset index in identify
nvmeset
@NVME_ID_UUID_LIST_MAX: The largest possible uuid index in identify
uuid list
@NVME_ID_CTRL_LIST_MAX: The largest possible controller index in
identify controller list
@NVME_ID_NS_LIST_MAX: The largest possible namespace index in
identify namespace list
@NVME_ID_SECONDARY_CTRL_MAX: The largest possible secondary controller index
in identify secondary controller
@NVME_ID_DOMAIN_LIST_MAX: The largest possible domain index in the
in domain list
@NVME_ID_ENDURANCE_GROUP_LIST_MAX: The largest possible endurance group
index in the endurance group list
@NVME_ID_ND_DESCRIPTOR_MAX: The largest possible namespace granularity
index in the namespace granularity descriptor
list
@NVME_FEAT_LBA_RANGE_MAX: The largest possible LBA range index in feature
lba range type
@NVME_LOG_ST_MAX_RESULTS: The largest possible self test result index in the
device self test log
@NVME_LOG_FID_SUPPORTED_EFFECTS_MAX: The largest possible FID index in the
feature identifiers effects log.
@NVME_LOG_MI_CMD_SUPPORTED_EFFECTS_MAX: The largest possible MI Command index
in the MI Command effects log.
@NVME_LOG_MI_CMD_SUPPORTED_EFFECTS_RESERVED: The reserved space in the MI Command
effects log.
@NVME_LOG_TELEM_BLOCK_SIZE: Specification defined size of Telemetry Data Blocks
@NVME_DSM_MAX_RANGES: The largest possible range index in a data-set
management command
@NVME_NQN_LENGTH: Max length for NVMe Qualified Name
@NVMF_TRADDR_SIZE: Max Transport Address size
@NVMF_TSAS_SIZE: Max Transport Specific Address Subtype size
@NVME_ZNS_CHANGED_ZONES_MAX: Max number of zones in the changed zones log
page
@NVME_STREAM_ID_MAX: Max number of stream IDs
enum nvme_crto - This field indicates the controller ready timeouts
@NVME_CRTO_CRWMT_SHIFT: Shift amount to get the controller ready with media timeout
@NVME_CRTO_CRIMT_SHIFT: Shift amount to get the controller ready independent of media timeout
@NVME_CRTO_CRWMT_MASK: Mask to get the controller ready with media timeout
@NVME_CRTO_CRIMT_MASK: Mask to get the controller ready independent of media timeout
enum nvme_csi - Defined command set indicators
@NVME_CSI_NVM: NVM Command Set Indicator
@NVME_CSI_KV: Key Value Command Set
@NVME_CSI_ZNS: Zoned Namespace Command Set
@NVME_CSI_SLM: Subsystem Local Memory Command Set
@NVME_CSI_CP: Computational Programs Command Set
enum nvme_csts - This field indicates the controller status register
@NVME_CSTS_RDY_SHIFT: Shift amount to get the ready
@NVME_CSTS_CFS_SHIFT: Shift amount to get the controller fatal status
@NVME_CSTS_SHST_SHIFT: Shift amount to get the shutdown status
@NVME_CSTS_NSSRO_SHIFT: Shift amount to get the NVM subsystem reset occurred
@NVME_CSTS_PP_SHIFT: Shift amount to get the processing paused
@NVME_CSTS_ST_SHIFT: Shift amount to get the shutdown type
@NVME_CSTS_RDY_MASK: Mask to get the ready
@NVME_CSTS_CFS_MASK: Mask to get the controller fatal status
@NVME_CSTS_SHST_MASK: Mask to get the shutdown status
@NVME_CSTS_NSSRO_MASK: Mask to get the NVM subsystem reset occurred
@NVME_CSTS_PP_MASK: Mask to get the processing paused
@NVME_CSTS_ST_MASK: Mask to get the shutdown type
@NVME_CSTS_SHST_NORMAL: Normal operation
@NVME_CSTS_SHST_OCCUR: Shutdown processing occurring
@NVME_CSTS_SHST_CMPLT: Shutdown processing complete
@NVME_CSTS_SHN_MASK: Deprecated mask to get the shutdown status
enum nvme_ctrl_metadata_type - Controller Metadata Element Types
@NVME_CTRL_METADATA_OS_CTRL_NAME: Name of the controller in
the operating system.
@NVME_CTRL_METADATA_OS_DRIVER_NAME: Name of the driver in the
operating system.
@NVME_CTRL_METADATA_OS_DRIVER_VER: Version of the driver in
the operating system.
@NVME_CTRL_METADATA_PRE_BOOT_CTRL_NAME: Name of the controller in
the pre-boot environment.
@NVME_CTRL_METADATA_PRE_BOOT_DRIVER_NAME: Name of the driver in the
pre-boot environment.
@NVME_CTRL_METADATA_PRE_BOOT_DRIVER_VER: Version of the driver in the
pre-boot environment.
@NVME_CTRL_METADATA_SYS_PROC_MODEL: Model of the processor.
@NVME_CTRL_METADATA_CHIPSET_DRV_NAME: Chipset driver name.
@NVME_CTRL_METADATA_CHIPSET_DRV_VERSION: Chipset driver version.
@NVME_CTRL_METADATA_OS_NAME_AND_BUILD: Operating system name and build.
@NVME_CTRL_METADATA_SYS_PROD_NAME: System product name.
@NVME_CTRL_METADATA_FIRMWARE_VERSION: Host firmware (e.g UEFI) version.
@NVME_CTRL_METADATA_OS_DRIVER_FILENAME: Operating system driver filename.
@NVME_CTRL_METADATA_DISPLAY_DRV_NAME: Display driver name.
@NVME_CTRL_METADATA_DISPLAY_DRV_VERSION: Display driver version.
@NVME_CTRL_METADATA_HOST_DET_FAIL_REC: Failure record.
enum nvme_data_tfr - Data transfer direction of the command
@NVME_DATA_TFR_NO_DATA_TFR: No data transfer
@NVME_DATA_TFR_HOST_TO_CTRL: Host to controller
@NVME_DATA_TFR_CTRL_TO_HOST: Controller to host
@NVME_DATA_TFR_BIDIRECTIONAL: Bidirectional
enum nvme_directive_types - Directives Supported or Enabled
@NVME_ID_DIR_ID_BIT: Identify directive is supported
@NVME_ID_DIR_SD_BIT: Streams directive is supported
@NVME_ID_DIR_DP_BIT: Direct Placement directive is supported
enum nvme_dst_stc - Action taken by the Device Self-test command
@NVME_DST_STC_SHORT: Start a short device self-test operation
@NVME_DST_STC_LONG: Start an extended device self-test operation
@NVME_DST_STC_HOST_INIT:Start a Host-Initiated Refresh operation
@NVME_DST_STC_VS: Start a vendor specific device self-test operation
@NVME_DST_STC_ABORT: Abort device self-test operation
enum nvme_eg_critical_warning_flags - Endurance Group Information Log - Critical Warning
@NVME_EG_CRITICAL_WARNING_SPARE: Available spare capacity of the Endurance Group
has fallen below the threshold
@NVME_EG_CRITICAL_WARNING_DEGRADED: Endurance Group reliability has been degraded
@NVME_EG_CRITICAL_WARNING_READ_ONLY: Endurance Group have been placed in read only
mode
enum nvme_eom_optional_data_present - EOM Optional Data Present Fields
@NVME_EOM_ODP_PEFP_SHIFT: Shift amount to get the printable eye field present
from the &struct nvme_phy_rx_eom_log.odp field.
@NVME_EOM_ODP_EDFP_SHIFT: Shift amount to get the eye data field present
from the &struct nvme_phy_rx_eom_log.odp field.
@NVME_EOM_ODP_RSVD_SHIFT: Shift amount to get the reserved optional data present
from the &struct nvme_phy_rx_eom_log.odp field.
@NVME_EOM_ODP_PEFP_MASK: Mask to get the printable eye field present
from the &struct nvme_phy_rx_eom_log.odp field.
@NVME_EOM_ODP_EDFP_MASK: Mask to get the eye data field present
from the &struct nvme_phy_rx_eom_log.odp field.
@NVME_EOM_ODP_RSVD_MASK: Mask to get the reserved data present
from the &struct nvme_phy_rx_eom_log.odp field.
enum nvme_err_status_field - This field indicates the error information log entry status field
@NVME_ERR_SF_PHASE_TAG_SHIFT: Shift amount to get the phase tag
@NVME_ERR_SF_STATUS_FIELD_SHIFT: Shift amount to get the status field
@NVME_ERR_SF_PHASE_TAG_MASK: Mask to get the phase tag
@NVME_ERR_SF_STATUS_FIELD_MASK: Mask to get the status field
enum nvme_fdp_config_fdpa - FDP Attributes
@NVME_FDP_CONFIG_FDPA_RGIF_SHIFT: Reclaim Group Identifier Format Shift
@NVME_FDP_CONFIG_FDPA_RGIF_MASK: Reclaim Group Identifier Format Mask
@NVME_FDP_CONFIG_FDPA_FDPVWC_SHIFT: FDP Volatile Write Cache Shift
@NVME_FDP_CONFIG_FDPA_FDPVWC_MASK: FDP Volatile Write Cache Mask
@NVME_FDP_CONFIG_FDPA_VALID_SHIFT: FDP Configuration Valid Shift
@NVME_FDP_CONFIG_FDPA_VALID_MASK: FDP Configuration Valid Mask
enum nvme_fdp_event_type - FDP Event Types
@NVME_FDP_EVENT_RUNFW: Reclaim Unit Not Fully Written
@NVME_FDP_EVENT_RUTLE: Reclaim Unit Time Limit Exceeded
@NVME_FDP_EVENT_RESET: Controller Level Reset Modified Reclaim Unit Handles
@NVME_FDP_EVENT_PID: Invalid Placement Identifier
@NVME_FDP_EVENT_REALLOC: Media Reallocated
@NVME_FDP_EVENT_MODIFY: Implicitly Modified Reclaim Unit Handle
enum nvme_feat_bpwp_state - Boot Partition Write Protection State
@NVME_FEAT_BPWPS_CHANGE_NOT_REQUESTED: Change in state not requested
@NVME_FEAT_BPWPS_WRITE_UNLOCKED: Write Unlocked
@NVME_FEAT_BPWPS_WRITE_LOCKED: Write Locked
@NVME_FEAT_BPWPS_WRITE_LOCKED_PWR_CYCLE: Write Locked Until Power Cycle
@NVME_FEAT_BPWPS_WRITE_PROTECTION_RPMB: Write Protection controlled by RPMB
enum nvme_feat_perfc_attri - performance characteristics attribute index
@NVME_FEAT_PERFC_ATTRI_STD: standard performance attribute
@NVME_FEAT_PERFC_ATTRI_ID_LIST: performance attribute identifier list
@NVME_FEAT_PERFC_ATTRI_VS_MIN: vendor specific performance attribute minimum index
@NVME_FEAT_PERFC_ATTRI_VS_MAX: vendor specific performance attribute maximum index
enum nvme_feat_perfc_r4karl - standard performance attribute random 4 kib average latency
@NVME_FEAT_PERFC_R4KARL_NO_REPORT: not reported
@NVME_FEAT_PERFC_R4KARL_GE_100_SEC: greater than or equal to 100 secs
@NVME_FEAT_PERFC_R4KARL_GE_50_SEC: greater than or equal to 50 secs and less than 100 secs
@NVME_FEAT_PERFC_R4KARL_GE_10_SEC: greater than or equal to 10 secs and less than 50 secs
@NVME_FEAT_PERFC_R4KARL_GE_5_SEC: greater than or equal to 5 secs and less than 10 secs
@NVME_FEAT_PERFC_R4KARL_GE_1_SEC: greater than or equal to 1 sec and less than 5 secs
@NVME_FEAT_PERFC_R4KARL_GE_500_MS: greater than or equal to 500 msecs and less than 1 sec
@NVME_FEAT_PERFC_R4KARL_GE_100_MS: greater than or equal to 100 msecs and less than 500 msecs
@NVME_FEAT_PERFC_R4KARL_GE_50_MS: greater than or equal to 50 msecs and less than 100 msecs
@NVME_FEAT_PERFC_R4KARL_GE_10_MS: greater than or equal to 10 msecs and less than 50 msecs
@NVME_FEAT_PERFC_R4KARL_GE_5_MS: greater than or equal to 5 msecs and less than 10 msecs
@NVME_FEAT_PERFC_R4KARL_GE_1_MS: greater than or equal to 1 msec and less than 5 msecs
@NVME_FEAT_PERFC_R4KARL_GE_500_US: greater than or equal to 500 usecs and less than 1 msec
@NVME_FEAT_PERFC_R4KARL_GE_100_US: greater than or equal to 100 usecs and less than 500 usecs
@NVME_FEAT_PERFC_R4KARL_GE_50_US: greater than or equal to 50 usecs and less than 100 usecs
@NVME_FEAT_PERFC_R4KARL_GE_10_US: greater than or equal to 10 usecs and less than 50 usecs
@NVME_FEAT_PERFC_R4KARL_GE_5_US: greater than or equal to 5 usecs and less than 10 usecs
@NVME_FEAT_PERFC_R4KARL_GE_1_US: greater than or equal to 1 usec and less than 5 usecs
@NVME_FEAT_PERFC_R4KARL_GE_500_NS: greater than or equal to 500 nsecs and less than 1 usec
@NVME_FEAT_PERFC_R4KARL_GE_100_NS: greater than or equal to 100 nsecs and less than 500 nsecs
@NVME_FEAT_PERFC_R4KARL_GE_50_NS: greater than or equal to 50 nsecs and less than 100 nsecs
@NVME_FEAT_PERFC_R4KARL_GE_10_NS: greater than or equal to 10 nsecs and less than 50 nsecs
@NVME_FEAT_PERFC_R4KARL_GE_5_NS: greater than or equal to 5 nsecs and less than 10 nsecs
@NVME_FEAT_PERFC_R4KARL_GE_1_NS: greater than or equal to 1 nsec and less than 5 nsecs
enum nvme_feat_tmpthresh_thsel - Temperature Threshold - Threshold Type Select
@NVME_FEATURE_TEMPTHRESH_THSEL_OVER: Over temperature threshold select
@NVME_FEATURE_TEMPTHRESH_THSEL_UNDER: Under temperature threshold select
enum nvme_flbas - This field indicates the formatted LBA size
@NVME_FLBAS_LOWER_SHIFT: Shift amount to get the format index least significant 4 bits
@NVME_FLBAS_META_EXT_SHIFT: Shift amount to get the metadata transferred
@NVME_FLBAS_HIGHER_SHIFT: Shift amount to get the format index most significant 2 bits
@NVME_FLBAS_LOWER_MASK: Mask to get the format index least significant 4 bits
@NVME_FLBAS_META_EXT_MASK: Mask to get the metadata transferred
@NVME_FLBAS_HIGHER_MASK: Mask to get the format index most significant 2 bits
enum nvme_fw_commit_ca - Firmware Commit - Commit Action
@NVME_FW_COMMIT_CA_REPLACE: Downloaded image replaces the existing
image, if any, in the specified Firmware
Slot. The newly placed image is not
activated.
@NVME_FW_COMMIT_CA_REPLACE_AND_ACTIVATE: Downloaded image replaces the existing
image, if any, in the specified Firmware
Slot. The newly placed image is activated
at the next Controller Level Reset.
@NVME_FW_COMMIT_CA_SET_ACTIVE: The existing image in the specified
Firmware Slot is activated at the
next Controller Level Reset.
@NVME_FW_COMMIT_CA_REPLACE_AND_ACTIVATE_IMMEDIATE: Downloaded image replaces the existing
image, if any, in the specified Firmware
Slot and is then activated immediately.
If there is not a newly downloaded image,
then the existing image in the specified
firmware slot is activated immediately.
@NVME_FW_COMMIT_CA_REPLACE_BOOT_PARTITION: Downloaded image replaces the Boot
Partition specified by the Boot
Partition ID field.
@NVME_FW_COMMIT_CA_ACTIVATE_BOOT_PARTITION: Mark the Boot Partition specified in
the BPID field as active and update
BPINFO.ABPID.
enum nvme_get_features_sel - Get Features - Select
@NVME_GET_FEATURES_SEL_CURRENT: Current value
@NVME_GET_FEATURES_SEL_DEFAULT: Default value
@NVME_GET_FEATURES_SEL_SAVED: Saved value
@NVME_GET_FEATURES_SEL_SUPPORTED: Supported capabilities
enum nvme_id_ctrl_anacap - This field indicates the capabilities associated
with Asymmetric Namespace Access Reporting.
@NVME_CTRL_ANACAP_OPT: If set, then the controller is able to
report ANA Optimized state.
@NVME_CTRL_ANACAP_NON_OPT: If set, then the controller is able to
report ANA Non-Optimized state.
@NVME_CTRL_ANACAP_INACCESSIBLE: If set, then the controller is able to
report ANA Inaccessible state.
@NVME_CTRL_ANACAP_PERSISTENT_LOSS: If set, then the controller is able to
report ANA Persistent Loss state.
@NVME_CTRL_ANACAP_CHANGE: If set, then the controller is able to
report ANA Change state.
@NVME_CTRL_ANACAP_GRPID_NO_CHG: If set, then the ANAGRPID field in the
Identify Namespace data structure
(&struct nvme_id_ns.anagrpid), does not
change while the namespace is attached to
any controller.
@NVME_CTRL_ANACAP_GRPID_MGMT: If set, then the controller supports a
non-zero value in the ANAGRPID field of
the Namespace Management command.
enum nvme_id_ctrl_apsta - Flags indicating the attributes of the autonomous
power state transition feature.
@NVME_CTRL_APSTA_APST: If set, then the controller supports autonomous power
state transitions.
enum nvme_id_ctrl_avscc - Flags indicating the configuration settings for
Admin Vendor Specific command handling.
@NVME_CTRL_AVSCC_AVS: If set, all Admin Vendor Specific Commands use the
optional vendor specific command format with NDT and
NDM fields.
enum nvme_id_ctrl_bpcap - Boot Partition Capabilities
@NVME_CTRL_BACAP_RPMBBPWPS_SHIFT: Shift amount to get the RPMB Boot Partition Write
Protection Support from the &struct
nvme_id_ctrl.bpcap field.
@NVME_CTRL_BACAP_SFBPWPS_SHIFT: Shift amount to get the Set Features Boot Partition
Write Protection Support from the &struct
nvme_id_ctrl.bpcap field.
@NVME_CTRL_BACAP_RPMBBPWPS_MASK: Mask to get the RPMB Boot Partition Write
Protection Support from the &struct
nvme_id_ctrl.bpcap field.
@NVME_CTRL_BACAP_SFBPWPS_MASK: Mask to get the Set Features Boot Partition Write
Protection Support from the &struct
nvme_id_ctrl.bpcap field.
@NVME_CTRL_BACAP_RPMBBPWPS_NOT_SPECIFIED: Support for RPMB Boot Partition Write Protection
is not specified.
@NVME_CTRL_BACAP_RPMBBPWPS_NOT_SUPPORTED: RPMB Boot Partition Write Protection is not
supported by this controller.
@NVME_CTRL_BACAP_RPMBBPWPS_SUPPORTED: RPMB Boot Partition Write Protection is supported
by this controller.
enum nvme_id_ctrl_cmic - Controller Multipath IO and Namespace Sharing
Capabilities of the controller and NVM subsystem.
@NVME_CTRL_CMIC_MULTI_PORT: If set, then the NVM subsystem may contain
more than one NVM subsystem port, otherwise
the NVM subsystem contains only a single
NVM subsystem port.
@NVME_CTRL_CMIC_MULTI_CTRL: If set, then the NVM subsystem may contain
two or more controllers, otherwise the
NVM subsystem contains only a single
controller. An NVM subsystem that contains
multiple controllers may be used by
multiple hosts, or may provide multiple
paths for a single host.
@NVME_CTRL_CMIC_MULTI_SRIOV: If set, then the controller is associated
with an SR-IOV Virtual Function, otherwise
it is associated with a PCI Function
or a Fabrics connection.
@NVME_CTRL_CMIC_MULTI_ANA_REPORTING: If set, then the NVM subsystem supports
Asymmetric Namespace Access Reporting.
enum nvme_id_ctrl_cqes - Defines the required and maximum Completion Queue
entry size when using the NVM Command Set.
@NVME_CTRL_CQES_MIN: Mask to get the value of the required Completion Queue
Entry size when using the NVM Command Set.
@NVME_CTRL_CQES_MAX: Mask to get the value of the maximum Completion Queue
entry size when using the NVM Command Set.
enum nvme_id_ctrl_crcap - Power Loss Signaling Information
@NVME_CTRL_CRCAP_RRSUP_SHIFT: Shift amount to get the Reachability Reporting Supported
from the &struct nvme_id_ctrl.crcap field.
@NVME_CTRL_CRCAP_RGIDC_SHIFT: Shift amount to get the Reachability Group ID Changeable
from the &struct nvme_id_ctrl.crcap field.
@NVME_CTRL_CRCAP_RRSUP_MASK: Mask to get the Reachability Reporting Supported from the
&struct nvme_id_ctrl.crcap field.
@NVME_CTRL_CRCAP_RGIDC_MASK: Mask to get the Reachability Group ID Changeable from the
&struct nvme_id_ctrl.crcap field.
enum nvme_id_ctrl_dsto - Flags indicating the optional Device Self-test
command or operation behaviors supported by the
controller or NVM subsystem.
@NVME_CTRL_DSTO_SDSO_SHIFT: Shift amount to get the value of Single Device Self-test
Operation from Device Self-test Options field.
@NVME_CTRL_DSTO_HIRS_SHIFT: Shift amount to get the value of Host-Initiated Refresh
Support from Device Self-test Options field.
@NVME_CTRL_DSTO_SDSO_MASK: Mask to get the value of Single Device Self-test Operation
@NVME_CTRL_DSTO_HIRS_MASK: Mask to get the value of Host-Initiated Refresh Support
@NVME_CTRL_DSTO_ONE_DST: If set, then the NVM subsystem supports only one device
self-test operation in progress at a time. If cleared,
then the NVM subsystem supports one device self-test
operation per controller at a time.
@NVME_CTRL_DSTO_HIRS: If set, then the controller supports the Host-Initiated
Refresh capability.
enum nvme_id_ctrl_fcatt - This field indicates attributes of the controller
that are specific to NVMe over Fabrics.
@NVME_CTRL_FCATT_DYNAMIC: If cleared, then the NVM subsystem uses a dynamic
controller model. If set, then the NVM subsystem
uses a static controller model.
enum nvme_id_ctrl_fna - This field indicates attributes for the Format NVM
command.
@NVME_CTRL_FNA_FMT_ALL_NS_SHIFT: Shift amount to get the format applied to all namespaces
@NVME_CTRL_FNA_SEC_ALL_NS_SHIFT: Shift amount to get the secure erase applied to all namespaces
@NVME_CTRL_FNA_CES_SHIFT: Shift amount to get the cryptographic erase supported
@NVME_CTRL_FNA_NSID_ALL_F_SHIFT: Shift amount to get the format supported an NSID FFFFFFFFh
@NVME_CTRL_FNA_FMT_ALL_NS_MASK: Mask to get the format applied to all namespaces
@NVME_CTRL_FNA_SEC_ALL_NS_MASK: Mask to get the secure erase applied to all namespaces
@NVME_CTRL_FNA_CES_MASK: Mask to get the cryptographic erase supported
@NVME_CTRL_FNA_NSID_ALL_F_MASK: Mask to get the format supported an NSID FFFFFFFFh
@NVME_CTRL_FNA_FMT_ALL_NAMESPACES: If set, then all namespaces in an NVM
subsystem shall be configured with the
same attributes and a format (excluding
secure erase) of any namespace results in
a format of all namespaces in an NVM
subsystem. If cleared, then the
controller supports format on a per
namespace basis.
@NVME_CTRL_FNA_SEC_ALL_NAMESPACES: If set, then any secure erase performed
as part of a format operation results in
a secure erase of all namespaces in the
NVM subsystem. If cleared, then any
secure erase performed as part of a
format results in a secure erase of the
particular namespace specified.
@NVME_CTRL_FNA_CRYPTO_ERASE: If set, then cryptographic erase is
supported. If cleared, then cryptographic
erase is not supported.
@NVME_CTRL_FNA_NSID_FFFFFFFF: If set, then format does not support
nsid value set to FFFFFFFFh. If cleared,
format supports nsid value set to
FFFFFFFFh.
enum nvme_id_ctrl_frmw - Flags and values indicates capabilities regarding
firmware updates from &struct nvme_id_ctrl.frmw.
@NVME_CTRL_FRMW_1ST_RO: If set, the first firmware slot is readonly
@NVME_CTRL_FRMW_NR_SLOTS: Mask to get the value of the number of
firmware slots that the controller supports.
@NVME_CTRL_FRMW_FW_ACT_NO_RESET: If set, the controller supports firmware
activation without a reset.
@NVME_CTRL_FRMW_MP_UP_DETECTION: If set, the controller is able to detect
overlapping firmware/boot partition
image update.
enum nvme_id_ctrl_fuses - This field indicates the fused operations that the
controller supports.
@NVME_CTRL_FUSES_COMPARE_AND_WRITE: If set, then the controller supports the
Compare and Write fused operation.
enum nvme_id_ctrl_hctm - Flags indicate the attributes of the host
controlled thermal management feature
@NVME_CTRL_HCTMA_HCTM: then the controller supports host controlled thermal
management, and the Set Features command and Get
Features command with the Feature Identifier field
set to %NVME_FEAT_FID_HCTM.
enum nvme_id_ctrl_kpioc - Key Per I/O Capabilities
@NVME_CTRL_KPIOC_KPIOS_SHIFT: Shift amount to get the Key Per I/O Supported from the
&struct nvme_id_ctrl.kpioc field.
@NVME_CTRL_KPIOC_KPIOSC_SHIFT: Shift amount to get the Key Per I/O Scope from the
&struct nvme_id_ctrl.kpioc field.
@NVME_CTRL_KPIOC_KPIOS_MASK: Mask to get the Key Per I/O Supported from the
&struct nvme_id_ctrl.kpioc field.
@NVME_CTRL_KPIOC_KPIOSC_MASK: Mask to get the Key Per I/O Scope from the
&struct nvme_id_ctrl.kpioc field.
enum nvme_id_ctrl_lpa - Flags indicating optional attributes for log pages
that are accessed via the Get Log Page command.
@NVME_CTRL_LPA_SMART_PER_NS: If set, controller supports SMART/Health log
page on a per namespace basis.
@NVME_CTRL_LPA_CMD_EFFECTS: If Set, the controller supports the commands
supported and effects log page.
@NVME_CTRL_LPA_EXTENDED: If set, the controller supports extended data
for log page command including extended number
of dwords and log page offset fields.
@NVME_CTRL_LPA_TELEMETRY: If set, the controller supports the telemetry
host-initiated and telemetry controller-initiated
log pages and sending telemetry log notices.
@NVME_CTRL_LPA_PERSETENT_EVENT: If set, the controller supports
persistent event log.
@NVME_CTRL_LPA_LI0_LI5_LI12_LI13: If set, the controller supports
- log pages log page.
- returning scope of each command in
commands supported and effects log
page.
- feature identifiers supported and
effects log page.
- NVMe-MI commands supported and
effects log page.
@NVME_CTRL_LPA_DA4_TELEMETRY: If set, the controller supports data
area 4 for telemetry host-initiated and
telemetry.
enum nvme_id_ctrl_mec - Flags indicating the capabilities of the Management
Endpoint in the Controller, &struct nvme_id_ctrl.mec.
@NVME_CTRL_MEC_SMBUSME: If set, then the NVM Subsystem contains a Management
Endpoint on an SMBus/I2C port.
@NVME_CTRL_MEC_PCIEME: If set, then the NVM Subsystem contains a Management
Endpoint on a PCIe port.
enum nvme_id_ctrl_nvmsr - This field reports information associated with the
NVM Subsystem, see &struct nvme_id_ctrl.nvmsr.
@NVME_CTRL_NVMSR_NVMESD: If set, then the NVM Subsystem is part of an NVMe
Storage Device; if cleared, then the NVM Subsystem
is not part of an NVMe Storage Device.
@NVME_CTRL_NVMSR_NVMEE: If set, then the NVM Subsystem is part of an NVMe
Enclosure; if cleared, then the NVM Subsystem is
not part of an NVMe Enclosure.
enum nvme_id_ctrl_nvscc - This field indicates the configuration settings
for NVM Vendor Specific command handling.
@NVME_CTRL_NVSCC_FMT: If set, all NVM Vendor Specific Commands use the
format with NDT and NDM fields.
enum nvme_id_ctrl_nwpc - This field indicates the optional namespace write
protection capabilities supported by the
controller.
@NVME_CTRL_NWPC_WRITE_PROTECT: If set, then the controller shall
support the No Write Protect and
Write Protect namespace write
protection states and may support
the Write Protect Until Power
Cycle state and Permanent Write
Protect namespace write
protection states.
@NVME_CTRL_NWPC_WRITE_PROTECT_POWER_CYCLE: If set, then the controller
supports the Write Protect Until
Power Cycle state.
@NVME_CTRL_NWPC_WRITE_PROTECT_PERMANENT: If set, then the controller
supports the Permanent Write
Protect state.
enum nvme_id_ctrl_oacs - Flags indicating the optional Admin commands and
features supported by the controller, see
&struct nvme_id_ctrl.oacs.
@NVME_CTRL_OACS_SSRS_SHIFT: Shift amount to get the Security Send Receive supported
@NVME_CTRL_OACS_FNVMS_SHIFT:Shift amount to get the Format NVM supported
@NVME_CTRL_OACS_FWDS_SHIFT: Shift amount to get the Firmware Download supported
@NVME_CTRL_OACS_NMS_SHIFT: Shift amount to get the Namespace Management supported
@NVME_CTRL_OACS_DSTS_SHIFT: Shift amount to get the Device Self-test supported
@NVME_CTRL_OACS_DIRS_SHIFT: Shift amount to get the Directives supported
@NVME_CTRL_OACS_NSRS_SHIFT: Shift amount to get the NVMe-MI Send Receive supported
@NVME_CTRL_OACS_VMS_SHIFT: Shift amount to get the Virtualization Management supported
@NVME_CTRL_OACS_DBCS_SHIFT: Shift amount to get the Doorbell Buffer Config supported
@NVME_CTRL_OACS_GLSS_SHIFT: Shift amount to get the Get LBA Status supported
@NVME_CTRL_OACS_CFLS_SHIFT: Shift amount to get the Command and Feature Lockdown supported
@NVME_CTRL_OACS_HMLMS_SHIFT:Shift amount to get the Host Managed Live Migration support
@NVME_CTRL_OACS_SSRS_MASK: Mask to get the Security Send Receive supported
@NVME_CTRL_OACS_FNVMS_MASK: Mask to get the Format NVM supported
@NVME_CTRL_OACS_FWDS_MASK: Mask to get the Firmware Download supported
@NVME_CTRL_OACS_NMS_MASK: Mask to get the Namespace Management supported
@NVME_CTRL_OACS_DSTS_MASK: Mask to get the Device Self-test supported
@NVME_CTRL_OACS_DIRS_MASK: Mask to get the Directives supported
@NVME_CTRL_OACS_NSRS_MASK: Mask to get the NVMe-MI Send Receive supported
@NVME_CTRL_OACS_VMS_MASK: Mask to get the Virtualization Management supported
@NVME_CTRL_OACS_DBCS_MASK: Mask to get the Doorbell Buffer Config supported
@NVME_CTRL_OACS_GLSS_MASK: Mask to get the Get LBA Status supported
@NVME_CTRL_OACS_CFLS_MASK: Mask to get the Command and Feature Lockdown supported
@NVME_CTRL_OACS_HMLMS_MASK: Mask to get the Host Managed Live Migration support
@NVME_CTRL_OACS_SECURITY: If set, then the controller supports the
Security Send and Security Receive commands.
@NVME_CTRL_OACS_FORMAT: If set then the controller supports the Format
NVM command.
@NVME_CTRL_OACS_FW: If set, then the controller supports the
Firmware Commit and Firmware Image Download commands.
@NVME_CTRL_OACS_NS_MGMT: If set, then the controller supports the
Namespace Management capability
@NVME_CTRL_OACS_SELF_TEST: If set, then the controller supports the Device
Self-test command.
@NVME_CTRL_OACS_DIRECTIVES: If set, then the controller supports Directives
and the Directive Send and Directive Receive
commands.
@NVME_CTRL_OACS_NVME_MI: If set, then the controller supports the NVMe-MI
Send and NVMe-MI Receive commands.
@NVME_CTRL_OACS_VIRT_MGMT: If set, then the controller supports the
Virtualization Management command.
@NVME_CTRL_OACS_DBBUF_CFG: If set, then the controller supports the
Doorbell Buffer Config command.
@NVME_CTRL_OACS_LBA_STATUS: If set, then the controller supports the Get LBA
Status capability.
@NVME_CTRL_OACS_CMD_FEAT_LD:If set, then the controller supports the command
and feature lockdown capability.
@NVME_CTRL_OACS_HMLM: If set, then the controller supports the command
and Host Managed Live Migration capability.
enum nvme_id_ctrl_oaes - Optional Asynchronous Events Supported
@NVME_CTRL_OAES_NA_SHIFT: Shift amount to get the Namespace Attribute Notices event supported
@NVME_CTRL_OAES_FA_SHIFT: Shift amount to get the Firmware Activation Notices event supported
@NVME_CTRL_OAES_ANA_SHIFT: Shift amount to get the ANA Change Notices supported
@NVME_CTRL_OAES_PLEA_SHIFT: Shift amount to get the Predictable Latency Event Aggregate Log
Change Notices event supported
@NVME_CTRL_OAES_LBAS_SHIFT: Shift amount to get the LBA Status Information Notices event
supported
@NVME_CTRL_OAES_EGE_SHIFT: Shift amount to get the Endurance Group Events Aggregate Log Change
Notices event supported
@NVME_CTRL_OAES_NS_SHIFT: Shift amount to get the Normal NVM Subsystem Shutdown event supported
@NVME_CTRL_OAES_TTH_SHIFT: Shift amount to get the Temperature Threshold Hysteresis Recovery
event supported
@NVME_CTRL_OAES_RGCNS_SHIFT: Shift amount to get the Reachability Groups Change Notices supported
@NVME_CTRL_OAES_ANSAN_SHIFT: Shift amount to get the Allocated Namespace Attribute Notices
supported
@NVME_CTRL_OAES_ZD_SHIFT: Shift amount to get the Zone Descriptor Change Notifications supported
@NVME_CTRL_OAES_DL_SHIFT: Shift amount to get the Discover Log Page Change Notifications
supported
@NVME_CTRL_OAES_NA_MASK: Mask to get the Namespace Attribute Notices event supported
@NVME_CTRL_OAES_FA_MASK: Mask to get the Firmware Activation Notices event supported
@NVME_CTRL_OAES_ANA_MASK: Mask to get the ANA Change Notices supported
@NVME_CTRL_OAES_PLEA_MASK: Mask to get the Predictable Latency Event Aggregate Log Change Notices
event supported
@NVME_CTRL_OAES_LBAS_MASK: Mask to get the LBA Status Information Notices event supported
@NVME_CTRL_OAES_EGE_MASK: Mask to get the Endurance Group Events Aggregate Log Change Notices
event supported
@NVME_CTRL_OAES_NS_MASK: Mask to get the Normal NVM Subsystem Shutdown event supported
@NVME_CTRL_OAES_TTH_MASK: Mask to get the Temperature Threshold Hysteresis Recovery event
supported
@NVME_CTRL_OAES_RGCNS_MASK: Mask to get the Reachability Groups Change Notices supported
@NVME_CTRL_OAES_ANSAN_MASK: Mask to get the Allocated Namespace Attribute Notices supported
@NVME_CTRL_OAES_ZD_MASK: Mask to get the Zone Descriptor Change Notifications supported
@NVME_CTRL_OAES_DL_MASK: Mask to get the Discover Log Page Change Notifications supported
@NVME_CTRL_OAES_NA: Namespace Attribute Notices event supported
@NVME_CTRL_OAES_FA: Firmware Activation Notices event supported
@NVME_CTRL_OAES_ANA: ANA Change Notices supported
@NVME_CTRL_OAES_PLEA: Predictable Latency Event Aggregate Log Change Notices event supported
@NVME_CTRL_OAES_LBAS: LBA Status Information Notices event supported
@NVME_CTRL_OAES_EGE: Endurance Group Events Aggregate Log Change Notices event supported
@NVME_CTRL_OAES_NS: Normal NVM Subsystem Shutdown event supported
@NVME_CTRL_OAES_TTH: Temperature Threshold Hysteresis Recovery event supported
@NVME_CTRL_OAES_RGCNS: Reachability Groups Change Notices supported
@NVME_CTRL_OAES_ANSAN: Allocated Namespace Attribute Notices supported
@NVME_CTRL_OAES_ZD: Zone Descriptor Change Notifications supported
@NVME_CTRL_OAES_DL: Discover Log Page Change Notifications supported
enum nvme_id_ctrl_ofcs - Indicate whether the controller supports optional
fabric commands.
@NVME_CTRL_OFCS_DISCONNECT: If set, then the controller supports the
Disconnect command and deletion of individual
I/O Queues.
enum nvme_id_ctrl_oncs - This field indicates the optional NVM commands and
features supported by the controller.
@NVME_CTRL_ONCS_COMPARE: If set, then the controller supports
the Compare command.
@NVME_CTRL_ONCS_WRITE_UNCORRECTABLE: If set, then the controller supports
the Write Uncorrectable command.
@NVME_CTRL_ONCS_DSM: If set, then the controller supports
the Dataset Management command.
@NVME_CTRL_ONCS_WRITE_ZEROES: If set, then the controller supports
the Write Zeroes command.
@NVME_CTRL_ONCS_SAVE_FEATURES: If set, then the controller supports
the Save field set to a non-zero value
in the Set Features command and the
Select field set to a non-zero value in
the Get Features command.
@NVME_CTRL_ONCS_RESERVATIONS: If set, then the controller supports
reservations.
@NVME_CTRL_ONCS_TIMESTAMP: If set, then the controller supports
the Timestamp feature.
@NVME_CTRL_ONCS_VERIFY: If set, then the controller supports
the Verify command.
@NVME_CTRL_ONCS_COPY: If set, then the controller supports
the copy command.
@NVME_CTRL_ONCS_COPY_SINGLE_ATOMICITY: If set, then the write portion of a
Copy command is performed as a single
write command to which the same
atomicity requirements that apply to
a write command apply.
@NVME_CTRL_ONCS_ALL_FAST_COPY: If set, then all copy operations for
the Copy command are fast copy
operations.
@NVME_CTRL_ONCS_WRITE_ZEROES_DEALLOCATE: If MAXWZD bit set, then the maximum data
size for Write Zeroes command depends on the
value of the Deallocate bit in the Write Zeroes
command and the value in the WZDSL field in the
I/O Command Set specific Identify Controller
data structure.
@NVME_CTRL_ONCS_NAMESPACE_ZEROES: If NSZS bit set, then the controller supports
the Namespace Zeroes (NSZ) bit in the NVM
Command Set Write Zeroes command.
enum nvme_id_ctrl_plsi - Power Loss Signaling Information
@NVME_CTRL_PLSI_PLSEPF_SHIFT: Shift amount to get the PLS Emergency Power Fail from the
&struct nvme_id_ctrl.plsi field.
@NVME_CTRL_PLSI_PLSFQ_SHIFT: Shift amount to get the PLS Forced Quiescence from the
&struct nvme_id_ctrl.plsi field.
@NVME_CTRL_PLSI_PLSEPF_MASK: Mask to get the PLS Emergency Power Fail from the
&struct nvme_id_ctrl.plsi field.
@NVME_CTRL_PLSI_PLSFQ_MASK: Mask to get the PLS Forced Quiescence from the
&struct nvme_id_ctrl.plsi field.
enum nvme_id_ctrl_rpmbs - This field indicates if the controller supports
one or more Replay Protected Memory Blocks, from
&struct nvme_id_ctrl.rpmbs.
@NVME_CTRL_RPMBS_NR_UNITS: Mask to get the value of the Number of RPMB Units
@NVME_CTRL_RPMBS_AUTH_METHOD: Mask to get the value of the Authentication Method
@NVME_CTRL_RPMBS_TOTAL_SIZE: Mask to get the value of Total Size
@NVME_CTRL_RPMBS_ACCESS_SIZE: Mask to get the value of Access Size
enum nvme_id_ctrl_sanicap - Indicates attributes for sanitize operations.
@NVME_CTRL_SANICAP_CES: Crypto Erase Support. If set, then the
controller supports the Crypto Erase sanitize operation.
@NVME_CTRL_SANICAP_BES: Block Erase Support. If set, then the controller
supports the Block Erase sanitize operation.
@NVME_CTRL_SANICAP_OWS: Overwrite Support. If set, then the controller
supports the Overwrite sanitize operation.
@NVME_CTRL_SANICAP_NDI: No-Deallocate Inhibited. If set and the No-
Deallocate Response Mode bit is set, then the
controller deallocates after the sanitize
operation even if the No-Deallocate After
Sanitize bit is set in a Sanitize command.
@NVME_CTRL_SANICAP_NODMMAS: No-Deallocate Modifies Media After Sanitize,
mask to extract value.
enum nvme_id_ctrl_sgls - This field indicates if SGLs are supported for the
NVM Command Set and the particular SGL types supported.
@NVME_CTRL_SGLS_SUPPORTED:
@NVME_CTRL_SGLS_KEYED:
@NVME_CTRL_SGLS_BIT_BUCKET:
@NVME_CTRL_SGLS_MPTR_BYTE_ALIGNED:
@NVME_CTRL_SGLS_OVERSIZE:
@NVME_CTRL_SGLS_MPTR_SGL:
@NVME_CTRL_SGLS_OFFSET:
@NVME_CTRL_SGLS_TPORT:
enum nvme_id_ctrl_sqes - Defines the required and maximum Submission Queue
entry size when using the NVM Command Set.
@NVME_CTRL_SQES_MIN: Mask to get the value of the required Submission Queue
Entry size when using the NVM Command Set.
@NVME_CTRL_SQES_MAX: Mask to get the value of the maximum Submission Queue
entry size when using the NVM Command Set.
enum nvme_id_ctrl_trattr - Tracking Attributes
@NVME_CTRL_TRATTR_THMCS_SHIFT: Shift amount to get the Track Host Memory Changes Support
from the &struct nvme_id_ctrl.trattr field.
@NVME_CTRL_TRATTR_TUDCS_SHIFT: Shift amount to get the Track User Data Changes Support
from the &struct nvme_id_ctrl.trattr field.
@NVME_CTRL_TRATTR_MRTLL_SHIFT: Shift amount to get the Memory Range Tracking Length Limit
from the &struct nvme_id_ctrl.trattr field.
@NVME_CTRL_TRATTR_THMCS_MASK: Mask to get the Track Host Memory Changes Support
from the &struct nvme_id_ctrl.trattr field.
@NVME_CTRL_TRATTR_TUDCS_MASK: Mask to get the Track User Data Changes Support
from the &struct nvme_id_ctrl.trattr field.
@NVME_CTRL_TRATTR_MRTLL_MASK: Mask to get the Memory Range Tracking Length Limit
from the &struct nvme_id_ctrl.trattr field.
enum nvme_id_ctrl_vwc - Volatile write cache
@NVME_CTRL_VWC_PRESENT: If set, indicates a volatile write cache is present.
If a volatile write cache is present, then the host
controls whether the volatile write cache is enabled
with a Set Features command specifying the value
%NVME_FEAT_FID_VOLATILE_WC.
@NVME_CTRL_VWC_FLUSH: Mask to get the value of the flush command behavior.
enum nvme_id_ctrl_vwci - This field indicates information about remaining
number of times that VPD contents are able to be
updated using the VPD Write command, see &struct
nvme_id_ctrl.vwci.
@NVME_CTRL_VWCI_VWCR: Mask to get value of VPD Write Cycles Remaining. If
the VPD Write Cycle Remaining Valid bit is set, then
this field contains a value indicating the remaining
number of times that VPD contents are able to be
updated using the VPD Write command. If this field is
set to 7Fh, then the remaining number of times that
VPD contents are able to be updated using the VPD
Write command is greater than or equal to 7Fh.
@NVME_CTRL_VWCI_VWCRV: VPD Write Cycle Remaining Valid. If this bit is set,
then the VPD Write Cycle Remaining field is valid. If
this bit is cleared, then the VPD Write Cycles
Remaining field is invalid and cleared to 0h.
enum nvme_id_iocs_iocsc - This field indicates the Identify I/O Command Set Data Structure
@NVME_IOCS_IOCSC_NVMCS_SHIFT: Shift amount to get the value of NVM Command Set
@NVME_IOCS_IOCSC_NVMCS_MASK: Mask to get the value of NVM Command Set
@NVME_IOCS_IOCSC_KVCS_SHIFT: Shift amount to get the value of Key Value Command Set
@NVME_IOCS_IOCSC_KVCS_MASK: Mask to get the value of Key Value Command Set
@NVME_IOCS_IOCSC_ZNSCS_SHIFT: Shift amount to get the value of Zoned Namespace Command
Set
@NVME_IOCS_IOCSC_ZNSCS_MASK: Mask to get the value of Zoned Namespace Command Set
@NVME_IOCS_IOCSC_SLMCS_SHIFT: Shift amount to get the value of Subsystem Local Memory
Command Set
@NVME_IOCS_IOCSC_SLMCS_MASK: Mask to get the value of Subsystem Local Memory Command Set
@NVME_IOCS_IOCSC_CPNCS_SHIFT: Shift amount to get the value of Computational Programs
Namespace Command Set
@NVME_IOCS_IOCSC_CPNCS_MASK: Mask to get the value of Computational Programs Namespace
Command Set
enum nvme_id_ns_attr - Specifies attributes of the namespace.
@NVME_NS_NSATTR_WRITE_PROTECTED: If set, then the namespace is currently
write protected and all write access to the
namespace shall fail.
enum nvme_id_ns_dlfeat - This field indicates information about features
that affect deallocating logical blocks for this
namespace.
@NVME_NS_DLFEAT_RB: Mask to get the value of the read behavior
@NVME_NS_DLFEAT_RB_NR: Read behvaior is not reported
@NVME_NS_DLFEAT_RB_ALL_0S: A deallocated logical block returns all bytes
cleared to 0h.
@NVME_NS_DLFEAT_RB_ALL_FS: A deallocated logical block returns all bytes
set to FFh.
@NVME_NS_DLFEAT_WRITE_ZEROES: If set, indicates that the controller supports
the Deallocate bit in the Write Zeroes command
for this namespace.
@NVME_NS_DLFEAT_CRC_GUARD: If set, indicates that the Guard field for
deallocated logical blocks that contain
protection information is set to the CRC for
the value read from the deallocated logical
block and its metadata
enum nvme_id_ns_dpc - This field indicates the capabilities for the
end-to-end data protection feature.
@NVME_NS_DPC_PI_TYPE1: If set, indicates that the namespace supports
Protection Information Type 1.
@NVME_NS_DPC_PI_TYPE2: If set, indicates that the namespace supports
Protection Information Type 2.
@NVME_NS_DPC_PI_TYPE3: If set, indicates that the namespace supports
Protection Information Type 3.
@NVME_NS_DPC_PI_FIRST: If set, indicates that the namespace supports
protection information transferred as the first eight
bytes of metadata.
@NVME_NS_DPC_PI_LAST: If set, indicates that the namespace supports
protection information transferred as the last eight
bytes of metadata.
enum nvme_id_ns_dps - This field indicates the Type settings for the
end-to-end data protection feature.
@NVME_NS_DPS_PI_NONE: Protection information is not enabled
@NVME_NS_DPS_PI_TYPE1: Protection information is enabled, Type 1
@NVME_NS_DPS_PI_TYPE2: Protection information is enabled, Type 2
@NVME_NS_DPS_PI_TYPE3: Protection information is enabled, Type 3
@NVME_NS_DPS_PI_MASK: Mask to get the value of the PI type
@NVME_NS_DPS_PI_FIRST: If set, indicates that the protection information, if
enabled, is transferred as the first eight bytes of
metadata.
enum nvme_id_ns_flbas - This field indicates the LBA data size & metadata
size combination that the namespace has been
formatted with
@NVME_NS_FLBAS_LOWER_MASK: Mask to get the index of one of the supported
LBA Formats’s least significant
4bits indicated in
:c:type:struct nvme_id_ns <nvme_id_ns>.lbaf.
@NVME_NS_FLBAS_META_EXT: Applicable only if format contains metadata. If
this bit is set, indicates that the metadata is
transferred at the end of the data LBA, creating an
extended data LBA. If cleared, indicates that all
of the metadata for a command is transferred as a
separate contiguous buffer of data.
@NVME_NS_FLBAS_HIGHER_MASK: Mask to get the index of one of
the supported LBA Formats’s most significant
2bits indicated in
:c:type:struct nvme_id_ns <nvme_id_ns>.lbaf.
enum nvme_id_ns_mc - This field indicates the capabilities for metadata.
@NVME_NS_MC_EXTENDED: If set, indicates the namespace supports the metadata
being transferred as part of a separate buffer that is
specified in the Metadata Pointer.
@NVME_NS_MC_SEPARATE: If set, indicates that the namespace supports the
metadata being transferred as part of an extended data LBA.
enum nvme_id_ns_nmic - This field specifies multi-path I/O and namespace
sharing capabilities of the namespace.
@NVME_NS_NMIC_SHARED: If set, then the namespace may be attached to two or
more controllers in the NVM subsystem concurrently
enum nvme_id_ns_rescap - This field indicates the reservation capabilities
of the namespace.
@NVME_NS_RESCAP_PTPL: If set, indicates that the namespace supports the
Persist Through Power Loss capability.
@NVME_NS_RESCAP_WE: If set, indicates that the namespace supports the
Write Exclusive reservation type.
@NVME_NS_RESCAP_EA: If set, indicates that the namespace supports the
Exclusive Access reservation type.
@NVME_NS_RESCAP_WERO: If set, indicates that the namespace supports the
Write Exclusive - Registrants Only reservation type.
@NVME_NS_RESCAP_EARO: If set, indicates that the namespace supports the
Exclusive Access - Registrants Only reservation type.
@NVME_NS_RESCAP_WEAR: If set, indicates that the namespace supports the
Write Exclusive - All Registrants reservation type.
@NVME_NS_RESCAP_EAAR: If set, indicates that the namespace supports the
Exclusive Access - All Registrants reservation type.
@NVME_NS_RESCAP_IEK_13: If set, indicates that Ignore Existing Key is used
as defined in revision 1.3 or later of this specification.
enum nvme_id_nsfeat - This field defines features of the namespace.
@NVME_NS_FEAT_THIN: If set, indicates that the namespace supports thin
provisioning. Specifically, the Namespace Capacity
reported may be less than the Namespace Size.
@NVME_NS_FEAT_NATOMIC: If set, indicates that the fields NAWUN, NAWUPF, and
NACWU are defined for this namespace and should be
used by the host for this namespace instead of the
AWUN, AWUPF, and ACWU fields in the Identify
Controller data structure.
@NVME_NS_FEAT_DULBE: If set, indicates that the controller supports the
Deallocated or Unwritten Logical Block error for
this namespace.
@NVME_NS_FEAT_ID_REUSE: If set, indicates that the value in the NGUID field
for this namespace, if non- zero, is never reused by
the controller and that the value in the EUI64 field
for this namespace, if non-zero, is never reused by
the controller.
@NVME_NS_FEAT_IO_OPT: If set, indicates that the fields NPWG, NPWA, NPDG,
NPDA, and NOWS are defined for this namespace and
should be used by the host for I/O optimization
enum nvme_identify_cns - Identify - CNS Values
@NVME_IDENTIFY_CNS_NS: Identify Namespace data structure
@NVME_IDENTIFY_CNS_CTRL: Identify Controller data structure
@NVME_IDENTIFY_CNS_NS_ACTIVE_LIST: Active Namespace ID list
@NVME_IDENTIFY_CNS_NS_DESC_LIST: Namespace Identification Descriptor list
@NVME_IDENTIFY_CNS_NVMSET_LIST: NVM Set List
@NVME_IDENTIFY_CNS_CSI_NS: I/O Command Set specific Identify
Namespace data structure
@NVME_IDENTIFY_CNS_CSI_CTRL: I/O Command Set specific Identify
Controller data structure
@NVME_IDENTIFY_CNS_CSI_NS_ACTIVE_LIST: Active Namespace ID list associated
with the specified I/O Command Set
@NVME_IDENTIFY_CNS_CSI_INDEPENDENT_ID_NS: I/O Command Set Independent Identify
@NVME_IDENTIFY_CNS_NS_USER_DATA_FORMAT: Namespace user data format
@NVME_IDENTIFY_CNS_CSI_NS_USER_DATA_FORMAT: I/O Command Set specific user data
format
Namespace data structure
@NVME_IDENTIFY_CNS_ALLOCATED_NS_LIST: Allocated Namespace ID list
@NVME_IDENTIFY_CNS_ALLOCATED_NS: Identify Namespace data structure for
the specified allocated NSID
@NVME_IDENTIFY_CNS_NS_CTRL_LIST: Controller List of controllers attached
to the specified NSID
@NVME_IDENTIFY_CNS_CTRL_LIST: Controller List of controllers that exist
in the NVM subsystem
@NVME_IDENTIFY_CNS_PRIMARY_CTRL_CAP: Primary Controller Capabilities data
structure for the specified primary controller
@NVME_IDENTIFY_CNS_SECONDARY_CTRL_LIST: Secondary Controller list of controllers
associated with the primary controller
processing the command
@NVME_IDENTIFY_CNS_NS_GRANULARITY: A Namespace Granularity List
@NVME_IDENTIFY_CNS_UUID_LIST: A UUID List
@NVME_IDENTIFY_CNS_DOMAIN_LIST: Domain List
@NVME_IDENTIFY_CNS_ENDURANCE_GROUP_ID: Endurance Group List
@NVME_IDENTIFY_CNS_CSI_ALLOCATED_NS_LIST: I/O Command Set specific Allocated Namespace
ID list
@NVME_IDENTIFY_CNS_CSI_ID_NS_DATA_STRUCTURE: I/O Command Set specific ID Namespace
Data Structure for Allocated Namespace ID
@NVME_IDENTIFY_CNS_COMMAND_SET_STRUCTURE: I/O Command Set data structure
@NVME_IDENTIFY_CNS_UNDERLYING_NS_LIST: Get Underlying Namespace List
@NVME_IDENTIFY_CNS_PORTS_LIST: Get Ports List
@NVME_IDENTIFY_CNS_IOCS_IND_ID_ALLOC_NS: I/O Command Set Independent Identify Namespace data
structure for the specified allocated NSID
@NVME_IDENTIFY_CNS_SUPPORTED_CTRL_STATE_FORMATS: Supported Controller State Formats
identifying the supported NVMe Controller
State data structures
enum nvme_io_control_flags - I/O control flags
@NVME_IO_DTYPE_STREAMS: Directive Type Streams
@NVME_IO_NSZ: Namespace Zeroes
@NVME_IO_STC: Storage Tag Check
@NVME_IO_DEAC: Deallocate
@NVME_IO_ZNS_APPEND_PIREMAP: Protection Information Remap
@NVME_IO_PRINFO_PRCHK_REF: Protection Information Check Reference Tag
@NVME_IO_PRINFO_PRCHK_APP: Protection Information Check Application Tag
@NVME_IO_PRINFO_PRCHK_GUARD: Protection Information Check Guard field
@NVME_IO_PRINFO_PRACT: Protection Information Action
@NVME_IO_FUA: Force Unit Access
@NVME_IO_LR: Limited Retry
enum nvme_io_dsm_flags - Dataset Management flags
@NVME_IO_DSM_FREQ_UNSPEC: No frequency information provided
@NVME_IO_DSM_FREQ_TYPICAL: Typical number of reads and writes
expected for this LBA range
@NVME_IO_DSM_FREQ_RARE: Infrequent writes and infrequent
reads to the LBA range indicated
@NVME_IO_DSM_FREQ_READS: Infrequent writes and frequent
reads to the LBA range indicated
@NVME_IO_DSM_FREQ_WRITES: Frequent writes and infrequent
reads to the LBA range indicated
@NVME_IO_DSM_FREQ_RW: Frequent writes and frequent reads
to the LBA range indicated
@NVME_IO_DSM_FREQ_ONCE:
@NVME_IO_DSM_FREQ_PREFETCH:
@NVME_IO_DSM_FREQ_TEMP:
@NVME_IO_DSM_LATENCY_NONE: No latency information provided
@NVME_IO_DSM_LATENCY_IDLE: Longer latency acceptable
@NVME_IO_DSM_LATENCY_NORM: Typical latency
@NVME_IO_DSM_LATENCY_LOW: Smallest possible latency
@NVME_IO_DSM_SEQ_REQ:
@NVME_IO_DSM_COMPRESSED:
enum nvme_lba_status_atype - Action type the controller uses to return LBA status
@NVME_LBA_STATUS_ATYPE_ALLOCATED: Return tracked allocated LBAs status
@NVME_LBA_STATUS_ATYPE_SCAN_UNTRACKED: Perform scan and return Untracked and
Tracked Potentially Unrecoverable LBAs
status
@NVME_LBA_STATUS_ATYPE_TRACKED: Return Tracked Potentially Unrecoverable
LBAs associated with physical storage
enum nvme_lba_status_cmpc - Get LBA Status Command Completion Condition
@NVME_LBA_STATUS_CMPC_NO_CMPC: No indication of the completion condition
@NVME_LBA_STATUS_CMPC_INCOMPLETE: Command completed, but additional LBA Status
Descriptor Entries are available to transfer
or scan did not complete (if ATYPE = 10h)
@NVME_LBA_STATUS_CMPC_COMPLETE: Completed the specified action over the number
of LBAs specified in the Range Length field and
transferred all available LBA Status Descriptors
enum nvme_lbaf_rp - This field indicates the relative performance of the LBA
format indicated relative to other LBA formats supported
by the controller.
@NVME_LBAF_RP_BEST: Best performance
@NVME_LBAF_RP_BETTER: Better performance
@NVME_LBAF_RP_GOOD: Good performance
@NVME_LBAF_RP_DEGRADED: Degraded performance
@NVME_LBAF_RP_MASK: Mask to get the relative performance value from the
field
enum nvme_lockdown_log_contents - lockdown log page content attributes
@NVME_LOCKDOWN_SUPPORTED_CMD: Content value for Supported commands
@NVME_LOCKDOWN_PROHIBITED_CMD: Content value for prohibited commands
@NVME_LOCKDOWN_PROHIBITED_OUTOFBAND_CMD: Content value for prohibited side band commands
enum nvme_lockdown_log_scope - lockdown log page scope attributes
@NVME_LOCKDOWN_ADMIN_CMD: Scope value for Admin commandS
@NVME_LOCKDOWN_FEATURE_ID: Scope value for Feature ID
@NVME_LOCKDOWN_MI_CMD_SET: Scope value for Management Interface commands
@NVME_LOCKDOWN_PCI_CMD_SET: Scope value for PCI commands
enum nvme_mi_elem - Element Descriptor Types
@NVME_MI_ELEM_EED: Extended Element Descriptor
@NVME_MI_ELEM_USCE: Upstream Connector Element Descriptor
@NVME_MI_ELEM_ECED: Expansion Connector Element Descriptor
@NVME_MI_ELEM_LED: Label Element Descriptor
@NVME_MI_ELEM_SMBMED: SMBus/I2C Mux Element Descriptor
@NVME_MI_ELEM_PCIESED: PCIe Switch Element Descriptor
@NVME_MI_ELEM_NVMED: NVM Subsystem Element Descriptor
enum nvme_nd_ns_fpi - If a format operation is in progress, this field
indicates the percentage of the namespace that remains
to be formatted.
@NVME_NS_FPI_REMAINING: Mask to get the format percent remaining value
@NVME_NS_FPI_SUPPORTED: If set, indicates that the namespace supports the
Format Progress Indicator defined for the field.
enum nvme_ns_id_desc_nidt - Known namespace identifier types
@NVME_NIDT_EUI64: IEEE Extended Unique Identifier, the NID field contains a
copy of the EUI64 field in the struct nvme_id_ns.eui64.
@NVME_NIDT_NGUID: Namespace Globally Unique Identifier, the NID field
contains a copy of the NGUID field in struct nvme_id_ns.nguid.
@NVME_NIDT_UUID: The NID field contains a 128-bit Universally Unique
Identifier (UUID) as specified in RFC 4122.
@NVME_NIDT_CSI: The NID field contains the command set identifier.
enum nvme_ns_metadata_type - Namespace Metadata Element Types
@NVME_NS_METADATA_OS_NS_NAME: Name of the namespace in the
operating system
@NVME_NS_METADATA_PRE_BOOT_NS_NAME: Name of the namespace in the pre-boot
environment.
@NVME_NS_METADATA_OS_NS_QUAL_1: First qualifier of the Operating System
Namespace Name.
@NVME_NS_METADATA_OS_NS_QUAL_2: Second qualifier of the Operating System
Namespace Name.
enum nvme_nvm_id_ns_elbaf - This field indicates the extended LBA format
@NVME_NVM_ELBAF_STS_MASK: Mask to get the storage tag size used to determine
the variable-sized storage tag/reference tag fields
@NVME_NVM_ELBAF_PIF_MASK: Mask to get the protection information format for
the extended LBA format.
@NVME_NVM_ELBAF_QPIF_MASK: Mask to get the Qualified Protection Information
Format.
enum nvme_nvm_id_ns_pif - This field indicates the type of the Protection
Information Format
@NVME_NVM_PIF_16B_GUARD: 16-bit Guard Protection Information Format
@NVME_NVM_PIF_32B_GUARD: 32-bit Guard Protection Information Format
@NVME_NVM_PIF_64B_GUARD: 64-bit Guard Protection Information Format
@NVME_NVM_PIF_QTYPE: If Qualified Protection Information Format Supports
and Protection Information Format is set to 3, then
protection information format is taken from Qualified
Protection Information Format field.
enum nvme_nvmeset_pl_status - Predictable Latency Per NVM Set Log - Status
@NVME_NVMSET_PL_STATUS_DISABLED: Not used (Predictable Latency Mode not enabled)
@NVME_NVMSET_PL_STATUS_DTWIN: Deterministic Window (DTWIN)
@NVME_NVMSET_PL_STATUS_NDWIN: Non-Deterministic Window (NDWIN)
enum nvme_nvmset_pl_events - Predictable Latency Per NVM Set Log - Event Type
@NVME_NVMSET_PL_EVENT_DTWIN_READ_WARN: DTWIN Reads Warning
@NVME_NVMSET_PL_EVENT_DTWIN_WRITE_WARN: DTWIN Writes Warning
@NVME_NVMSET_PL_EVENT_DTWIN_TIME_WARN: DTWIN Time Warning
@NVME_NVMSET_PL_EVENT_DTWIN_EXCEEDED: Autonomous transition from DTWIN
to NDWIN due to typical or
maximum value exceeded
@NVME_NVMSET_PL_EVENT_DTWIN_EXCURSION: Autonomous transition from DTWIN
to NDWIN due to Deterministic
Excursion
enum nvme_pel_ehai - This field indicates the persistent event header additional information
@NVME_PEL_EHAI_PIT_SHIFT: Shift amount to get the reporting context port identifier
from the &struct nvme_persistent_event_log.rci field.
@NVME_PEL_EHAI_RSVD_SHIFT: Shift amount to get the reserved reporting context
from the &struct nvme_persistent_event_log.rci field.
@NVME_PEL_EHAI_PIT_MASK: Mask to get the reporting context port identifier from
the &struct nvme_st_result.dsts field.
@NVME_PEL_EHAI_RSVD_MASK: Mask to get the reserved reporting context from
the &struct nvme_st_result.dsts field.
enum nvme_pel_ehai_pit - Persistent Event Header Additional Information - Port Identifier Type
@NVME_PEL_EHAI_PIT_NOT_REPORTED: PIT not reported and PELPID does not apply
@NVME_PEL_EHAI_PIT_NSS_PORT: NVM subsystem port
@NVME_PEL_EHAI_PIT_NMI_PORT: NVMe-MI port
@NVME_PEL_EHAI_PIT_NOT_ASSOCIATED: Event not associated with any port and PELPID does not apply
enum nvme_pel_rci - This field indicates the persistent event log reporting context
@NVME_PEL_RCI_RCPID_SHIFT: Shift amount to get the reporting context port identifier
from the &struct nvme_persistent_event_log.rci field.
@NVME_PEL_RCI_RCPIT_SHIFT: Shift amount to get the reporting context port identifier
type from the &struct nvme_persistent_event_log.rci field.
@NVME_PEL_RCI_RCE_SHIFT: Shift amount to get the reporting context exists
from the &struct nvme_persistent_event_log.rci field.
@NVME_PEL_RCI_RSVD_SHIFT: Shift amount to get the reserved reporting context
from the &struct nvme_persistent_event_log.rci field.
@NVME_PEL_RCI_RCPID_MASK: Mask to get the reporting context port identifier from
the &struct nvme_persistent_event_log.rci field.
@NVME_PEL_RCI_RCPIT_MASK: Mask to get the reporting context port identifier type from
the &struct nvme_persistent_event_log.rci field.
@NVME_PEL_RCI_RCE_MASK: Mask to get the reporting context exists from
the &struct nvme_persistent_event_log.rci field.
@NVME_PEL_RCI_RSVD_MASK: Mask to get the reserved reporting context from
the &struct nvme_persistent_event_log.rci field.
enum nvme_pel_rci_rcpit - Persistent Event Log Reporting Context - Port Identifier Type
@NVME_PEL_RCI_RCPIT_NOT_EXIST: Does not already exist
@NVME_PEL_RCI_RCPIT_EST_PORT: Established by an NVM subsystem port
@NVME_PEL_RCI_RCPIT_EST_ME: Established by a Management Endpoint
enum nvme_phy_rx_eom_progress - EOM In Progress Values
@NVME_PHY_RX_EOM_NOT_STARTED: EOM Not Started
@NVME_PHY_RX_EOM_IN_PROGRESS: EOM In Progress
@NVME_PHY_RX_EOM_COMPLETED: EOM Completed
enum nvme_pmrcap - This field indicates the persistent memory region capabilities
@NVME_PMRCAP_RDS_SHIFT: Shift amount to get the read data support
@NVME_PMRCAP_WDS_SHIFT: Shift amount to get the write data support
@NVME_PMRCAP_BIR_SHIFT: Shift amount to get the base indicator register
@NVME_PMRCAP_PMRTU_SHIFT: Shift amount to get the persistent memory region time units
@NVME_PMRCAP_PMRWBM_SHIFT: Shift amount to get the persistent memory region write barrier mechanisms
@NVME_PMRCAP_PMRTO_SHIFT: Shift amount to get the persistent memory region timeout
@NVME_PMRCAP_CMSS_SHIFT: Shift amount to get the controller memory space supported
@NVME_PMRCAP_PMRWMB_SHIFT: Deprecated shift amount to get the persistent memory region write barrier mechanisms
@NVME_PMRCAP_RDS_MASK: Mask to get the read data support
@NVME_PMRCAP_WDS_MASK: Mask to get the write data support
@NVME_PMRCAP_BIR_MASK: Mask to get the base indicator register
@NVME_PMRCAP_PMRTU_MASK: Mask to get the persistent memory region time units
@NVME_PMRCAP_PMRWBM_MASK: Mask to get the persistent memory region write barrier mechanisms
@NVME_PMRCAP_PMRTO_MASK: Mask to get the persistent memory region timeout
@NVME_PMRCAP_CMSS_MASK: Mask to get the controller memory space supported
@NVME_PMRCAP_PMRWMB_MASK: Deprecated mask to get the persistent memory region write barrier mechanisms
@NVME_PMRCAP_PMRTU_500MS: 500 milliseconds
@NVME_PMRCAP_PMRTU_60S: minutes
enum nvme_pmrctl - This field indicates the persistent memory region control
@NVME_PMRCTL_EN_SHIFT: Shift amount to get the enable
@NVME_PMRCTL_EN_MASK: Mask to get the enable
enum nvme_pmrebs - This field indicates the persistent memory region elasticity buffer size
@NVME_PMREBS_PMRSZU_SHIFT: Shift amount to get the PMR elasticity buffer size units
@NVME_PMREBS_RBB_SHIFT: Shift amount to get the read bypass behavior
@NVME_PMREBS_PMRWBZ_SHIFT: Shift amount to get the PMR elasticity buffer size base
@NVME_PMREBS_PMRSZU_MASK: Mask to get the PMR elasticity buffer size units
@NVME_PMREBS_RBB_MASK: Mask to get the read bypass behavior
@NVME_PMREBS_PMRWBZ_MASK: Mask to get the PMR elasticity buffer size base
@NVME_PMREBS_PMRSZU_B: Bytes
@NVME_PMREBS_PMRSZU_1K: 1 KiB
@NVME_PMREBS_PMRSZU_1M: 1 MiB
@NVME_PMREBS_PMRSZU_1G: 1 GiB
enum nvme_pmrmsc - This field indicates the persistent memory region memory space control
@NVME_PMRMSC_CMSE_SHIFT: Shift amount to get the controller memory space enable
@NVME_PMRMSC_CBA_SHIFT: Shift amount to get the controller base address
@NVME_PMRMSC_CMSE_MASK: Mask to get the controller memory space enable
enum nvme_pmrsts - This field indicates the persistent memory region status
@NVME_PMRSTS_ERR_SHIFT: Shift amount to get the error
@NVME_PMRSTS_NRDY_SHIFT: Shift amount to get the not ready
@NVME_PMRSTS_HSTS_SHIFT: Shift amount to get the health status
@NVME_PMRSTS_CBAI_SHIFT: Shift amount to get the controller base address invalid
@NVME_PMRSTS_ERR_MASK: Mask to get the error
@NVME_PMRSTS_NRDY_MASK: Mask to get the not ready
@NVME_PMRSTS_HSTS_MASK: Mask to get the health status
@NVME_PMRSTS_CBAI_MASK: Mask to get the controller base address invalid
enum nvme_pmrswtp - This field indicates the persistent memory region sustained write throughput
@NVME_PMRSWTP_PMRSWTU_SHIFT: Shift amount to get the PMR sustained write throughput units
@NVME_PMRSWTP_PMRSWTV_SHIFT: Shift amount to get the PMR sustained write throughput
@NVME_PMRSWTP_PMRSWTU_MASK: Mask to get the PMR sustained write throughput units
@NVME_PMRSWTP_PMRSWTV_MASK: Mask to get the PMR sustained write throughput
@NVME_PMRSWTP_PMRSWTU_BPS: Bytes per second
@NVME_PMRSWTP_PMRSWTU_KBPS: 1 KiB / s
@NVME_PMRSWTP_PMRSWTU_MBPS: 1 MiB / s
@NVME_PMRSWTP_PMRSWTU_GBPS: 1 GiB / s
enum nvme_psd_flags - Possible flag values in nvme power state descriptor
@NVME_PSD_FLAGS_MXPS: Indicates the scale for the Maximum Power
field. If this bit is cleared, then the scale of the
Maximum Power field is in 0.01 Watts. If this bit is
set, then the scale of the Maximum Power field is in
0.0001 Watts.
@NVME_PSD_FLAGS_NOPS: Indicates whether the controller processes I/O
commands in this power state. If this bit is cleared,
then the controller processes I/O commands in this
power state. If this bit is set, then the controller
does not process I/O commands in this power state.
enum nvme_psd_ps - Known values for &struct nvme_psd %ips and %aps. Use with
nvme_psd_power_scale() to extract the power scale field
to match this enum.
@NVME_PSD_PS_NOT_REPORTED: Not reported
@NVME_PSD_PS_100_MICRO_WATT: 0.0001 watt scale
@NVME_PSD_PS_10_MILLI_WATT: 0.01 watt scale
enum nvme_psd_workload - Specifies a workload hint in the Power Management
Feature (see &struct nvme_psd.apw) to inform the
NVM subsystem or indicate the conditions for the
active power level.
@NVME_PSD_WORKLOAD_NP: The workload is unknown or not provided.
@NVME_PSD_WORKLOAD_1: Extended Idle Period with a Burst of Random Write
consists of five minutes of idle followed by
thirty-two random write commands of size 1 MiB
submitted to a single controller while all other
controllers in the NVM subsystem are idle, and then
thirty (30) seconds of idle.
@NVME_PSD_WORKLOAD_2: Heavy Sequential Writes consists of 80,000
sequential write commands of size 128 KiB submitted to
a single controller while all other controllers in the
NVM subsystem are idle. The submission queue(s)
should be sufficiently large allowing the host to
ensure there are multiple commands pending at all
times during the workload.
enum nvme_resv_cptpl - Reservation Register - Change Persist Through Power Loss State
@NVME_RESERVATION_CPTPL_NO_CHANGE: No change to PTPL state
@NVME_RESERVATION_CPTPL_CLEAR: Reservations are released and
registrants are cleared on a power on
@NVME_RESERVATION_CPTPL_PERSIST: Reservations and registrants persist
across a power loss
enum nvme_sanitize_ssi - Sanitize State Information (SSI)
@NVME_SANITIZE_SSI_SANS_SHIFT: Shift amount to get the value of Sanitize State
from Sanitize State Information (SSI) field.
@NVME_SANITIZE_SSI_SANS_MASK: Mask to get the value of Sanitize State from
Sanitize State Information (SSI) field.
@NVME_SANITIZE_SSI_FAILS_SHIFT: Shift amount to get the value of Failure State
from Sanitize State Information (SSI) field.
@NVME_SANITIZE_SSI_FAILS_MASK: Mask to get the value of Failure State from
Sanitize State Information (SSI) field.
@NVME_SANITIZE_SSI_IDLE: No sanitize operation is in process.
@NVME_SANITIZE_SSI_RESTRICT_PROCESSING: The Sanitize operation is in Restricted Processing
State.
@NVME_SANITIZE_SSI_RESTRICT_FAILURE: The Sanitize operation is in Restricted Failure
State. This state is entered if sanitize processing
was performed in the Restricted Processing state and
sanitize processing failed or a failure occurred
during deallocation of media allocated for user data
in the Post-Verification Deallocation state.
@NVME_SANITIZE_SSI_UNRESTRICT_PROCESSING: The Sanitize operation is in Unrestricted Processing
State.
@NVME_SANITIZE_SSI_UNRESTRICT_FAILURE: The Sanitize operation is in Unrestricted Failure
State. This state is entered if sanitize processing
was performed in the Unrestricted Processing state
and sanitize processing failed or a failure occurred
during deallocation of media allocated for user data
in the Post-Verification.
@NVME_SANITIZE_SSI_MEDIA_VERIFICATION: The Sanitize operation is in Media Verification
State. In this state, the sanitize processing
completed successfully, and all media allocated for
user data in the sanitization target is readable by
the host for purposes of verifying sanitization.
@NVME_SANITIZE_SSI_POST_VERIF_DEALLOC: The Sanitize operation is in Post-Verification
Deallocation State. In this state, the controller
shall deallocate all media allocated for user data
in the sanitization target.
enum nvme_sanitize_sstat - Sanitize Status (SSTAT)
@NVME_SANITIZE_SSTAT_STATUS_SHIFT: Shift amount to get the status value of
the most recent sanitize operation from
the &struct nvme_sanitize_log_page.sstat
field.
@NVME_SANITIZE_SSTAT_STATUS_MASK: Mask to get the status value of the most
recent sanitize operation.
@NVME_SANITIZE_SSTAT_STATUS_NEVER_SANITIZED: The NVM subsystem has never been
sanitized.
@NVME_SANITIZE_SSTAT_STATUS_COMPLETE_SUCCESS: The most recent sanitize operation
completed successfully including any
additional media modification.
@NVME_SANITIZE_SSTAT_STATUS_IN_PROGESS: A sanitize operation is currently in progress.
@NVME_SANITIZE_SSTAT_STATUS_COMPLETED_FAILED: The most recent sanitize operation
failed.
@NVME_SANITIZE_SSTAT_STATUS_ND_COMPLETE_SUCCESS: The most recent sanitize operation
for which No-Deallocate After Sanitize was
requested has completed successfully with
deallocation of all user data.
@NVME_SANITIZE_SSTAT_COMPLETED_PASSES_SHIFT: Shift amount to get the number
of completed passes if the most recent
sanitize operation was an Overwrite. This
value shall be cleared to 0h if the most
recent sanitize operation was not
an Overwrite.
@NVME_SANITIZE_SSTAT_COMPLETED_PASSES_MASK: Mask to get the number of completed
passes.
@NVME_SANITIZE_SSTAT_GLOBAL_DATA_ERASED_SHIFT: Shift amount to get the Global
Data Erased value from the
&struct nvme_sanitize_log_page.sstat field.
@NVME_SANITIZE_SSTAT_GLOBAL_DATA_ERASED_MASK: Mask to get the Global Data Erased
value.
@NVME_SANITIZE_SSTAT_GLOBAL_DATA_ERASED: Global Data Erased: if set, then no
namespace user data in the NVM subsystem
has been written to and no Persistent
Memory Region in the NVM subsystem has
been enabled since being manufactured and
the NVM subsystem has never been sanitized;
or since the most recent successful sanitize
operation.
@NVME_SANITIZE_SSTAT_MVCNCLD_SHIFT: Shift amount to get the value of Media Verification
Canceled bit of Sanitize status field.
@NVME_SANITIZE_SSTAT_MVCNCLD_MASK: Mask to get the value of Media Verification Canceled
bit of Sanitize status field.
typedef nvme_scan_tls_keys_cb_t - Callback for iterating TLS keys
@keyring: Keyring which has been iterated
@key: Key for which the callback has been invoked
@desc: Description of the key
@desc_len: Length of @desc
@data: Pointer for caller data
enum nvme_set_feat_event_layout - This field indicates the set feature event layout
@NVME_SET_FEAT_EVENT_DW_COUNT_SHIFT: Shift amount to get the Dword count from the
&struct nvme_set_feature_event.layout field.
@NVME_SET_FEAT_EVENT_CC_DW0_SHIFT: Shift amount to get the logged command completion Dword 0
from the &struct nvme_set_feature_event.layout field.
@NVME_SET_FEAT_EVENT_MB_COUNT_SHIFT: Shift amount to get the memory buffer count from
the &struct nvme_set_feature_event.layout field.
@NVME_SET_FEAT_EVENT_DW_COUNT_MASK: Mask to get the Dword count from the &struct
nvme_set_feature_event.layout field.
@NVME_SET_FEAT_EVENT_CC_DW0_MASK: Mask to get the logged command completion Dword 0 from
the &struct nvme_set_feature_event.layout field.
@NVME_SET_FEAT_EVENT_MB_COUNT_MASK: Mask to get the memory buffer count from the &struct
nvme_set_feature_event.layout field.
enum nvme_smart_crit - Critical Warning
@NVME_SMART_CW_ASCBT_SHIFT: Shift amount to get the available spare capacity has fallen
below the threshold.
@NVME_SMART_CW_TTC_SHIFT: Shift amount to get the temperature is either greater
than or equal to an over temperature threshold; or
less than or equal to an under temperature threshold.
@NVME_SMART_CW_NDR_SHIFT: Shift amount to get the NVM subsystem reliability has
been degraded due to significant media related errors
or any internal error that degrades NVM subsystem
reliability.
@NVME_SMART_CW_AMRO_SHIFT: Shift amount to get the all of the media has been placed in read
only mode. The controller shall not set this bit if
the read-only condition on the media is a result of
a change in the write protection state of a namespace.
@NVME_SMART_CW_VMBF_SHIFT: Shift amount to get the volatile memory backup
device has failed. This field is only valid if the
controller has a volatile memory backup solution.
@NVME_SMART_CW_PMRRO_SHIFT: Shift amount to get the Persistent Memory Region has become
read-only or unreliable.
@NVME_SMART_CW_ASCBT_MASK: If set, then the available spare capacity has fallen
below the threshold.
@NVME_SMART_CW_TTC_MASK: Mask to get the temperature is either greater
than or equal to an over temperature threshold; or
less than or equal to an under temperature threshold.
@NVME_SMART_CW_NDR_MASK: Mask to get the NVM subsystem reliability has
been degraded due to significant media related errors
or any internal error that degrades NVM subsystem
reliability.
@NVME_SMART_CW_AMRO_MASK: Mask to get the all of the media has been placed in read
only mode. The controller shall not set this bit if
the read-only condition on the media is a result of
a change in the write protection state of a namespace.
@NVME_SMART_CW_VMBF_MASK: Mask to get the volatile memory backup
device has failed. This field is only valid if the
controller has a volatile memory backup solution.
@NVME_SMART_CW_PMRRO_MASK: Mask to get the Persistent Memory Region has become
read-only or unreliable.
@NVME_SMART_CRIT_SPARE: If set, then the available spare capacity has fallen
below the threshold.
@NVME_SMART_CRIT_TEMPERATURE: If set, then a temperature is either greater
than or equal to an over temperature threshold; or
less than or equal to an under temperature threshold.
@NVME_SMART_CRIT_DEGRADED: If set, then the NVM subsystem reliability has
been degraded due to significant media related errors
or any internal error that degrades NVM subsystem
reliability.
@NVME_SMART_CRIT_MEDIA: If set, then all of the media has been placed in read
only mode. The controller shall not set this bit if
the read-only condition on the media is a result of
a change in the write protection state of a namespace.
@NVME_SMART_CRIT_VOLATILE_MEMORY: If set, then the volatile memory backup
device has failed. This field is only valid if the
controller has a volatile memory backup solution.
@NVME_SMART_CRIT_PMR_RO: If set, then the Persistent Memory Region has become
read-only or unreliable.
enum nvme_smart_egcw - Endurance Group Critical Warning Summary
@NVME_SMART_EGCW_SPARE: If set, then the available spare capacity of one or
more Endurance Groups has fallen below the threshold.
@NVME_SMART_EGCW_DEGRADED: If set, then the reliability of one or more
Endurance Groups has been degraded due to significant
media related errors or any internal error that
degrades NVM subsystem reliability.
@NVME_SMART_EGCW_RO: If set, then the namespaces in one or more Endurance
Groups have been placed in read only mode not as
a result of a change in the write protection state
of a namespace.
enum nvme_st_curr_op - Current Device Self-Test Operation
@NVME_ST_CURR_OP_NOT_RUNNING: No device self-test operation in progress.
@NVME_ST_CURR_OP_SHORT: Short device self-test operation in progress.
@NVME_ST_CURR_OP_EXTENDED: Extended device self-test operation in progress.
@NVME_ST_CURR_OP_VS: Vendor specific.
@NVME_ST_CURR_OP_RESERVED: Reserved.
@NVME_ST_CURR_OP_MASK: Mask to get the current operation value from the
&struct nvme_self_test_log.current_operation field.
@NVME_ST_CURR_OP_CMPL_MASK: Mask to get the current operation completion value
from the &struct nvme_self_test_log.completion field.
enum nvme_st_valid_diag_info - Valid Diagnostic Information
@NVME_ST_VALID_DIAG_INFO_NSID: NSID Valid: if set, then the contents of
the Namespace Identifier field are valid.
@NVME_ST_VALID_DIAG_INFO_FLBA: FLBA Valid: if set, then the contents of
the Failing LBA field are valid.
@NVME_ST_VALID_DIAG_INFO_SCT: SCT Valid: if set, then the contents of
the Status Code Type field are valid.
@NVME_ST_VALID_DIAG_INFO_SC: SC Valid: if set, then the contents of
the Status Code field are valid.
enum nvme_status_field - Defines all parts of the nvme status field: status
code, status code type, and additional flags.
@NVME_SCT_GENERIC: Generic errors applicable to multiple opcodes
@NVME_SCT_CMD_SPECIFIC: Errors associated to a specific opcode
@NVME_SCT_MEDIA: Errors associated with media and data integrity
@NVME_SCT_PATH: Errors associated with the paths connection
@NVME_SCT_VS: Vendor specific errors
@NVME_SCT_MASK: Mask to get the value of the Status Code Type
@NVME_SCT_SHIFT: Shift value to get the value of the Status
Code Type
@NVME_SC_MASK: Mask to get the value of the status code.
@NVME_SC_SHIFT: Shift value to get the value of the status
code.
@NVME_SC_SUCCESS: Successful Completion: The command
completed without error.
@NVME_SC_INVALID_OPCODE: Invalid Command Opcode: A reserved coded
value or an unsupported value in the
command opcode field.
@NVME_SC_INVALID_FIELD: Invalid Field in Command: A reserved
coded value or an unsupported value in a
defined field.
@NVME_SC_CMDID_CONFLICT: Command ID Conflict: The command
identifier is already in use.
@NVME_SC_DATA_XFER_ERROR: Data Transfer Error: Transferring the
data or metadata associated with a
command experienced an error.
@NVME_SC_POWER_LOSS: Commands Aborted due to Power Loss
Notification: Indicates that the command
was aborted due to a power loss
notification.
@NVME_SC_INTERNAL: Internal Error: The command was not
completed successfully due to an internal error.
@NVME_SC_ABORT_REQ: Command Abort Requested: The command was
aborted due to an Abort command being
received that specified the Submission
Queue Identifier and Command Identifier
of this command.
@NVME_SC_ABORT_QUEUE: Command Aborted due to SQ Deletion: The
command was aborted due to a Delete I/O
Submission Queue request received for the
Submission Queue to which the command was
submitted.
@NVME_SC_FUSED_FAIL: Command Aborted due to Failed Fused Command:
The command was aborted due to the other
command in a fused operation failing.
@NVME_SC_FUSED_MISSING: Aborted due to Missing Fused Command: The
fused command was aborted due to the
adjacent submission queue entry not
containing a fused command that is the
other command.
@NVME_SC_INVALID_NS: Invalid Namespace or Format: The
namespace or the format of that namespace
is invalid.
@NVME_SC_CMD_SEQ_ERROR: Command Sequence Error: The command was
aborted due to a protocol violation in a
multi-command sequence.
@NVME_SC_SGL_INVALID_LAST: Invalid SGL Segment Descriptor: The
command includes an invalid SGL Last
Segment or SGL Segment descriptor.
@NVME_SC_SGL_INVALID_COUNT: Invalid Number of SGL Descriptors: There
is an SGL Last Segment descriptor or an
SGL Segment descriptor in a location
other than the last descriptor of a
segment based on the length indicated.
@NVME_SC_SGL_INVALID_DATA: Data SGL Length Invalid: This may occur
if the length of a Data SGL is too short.
This may occur if the length of a Data
SGL is too long and the controller does
not support SGL transfers longer than the
amount of data to be transferred as
indicated in the SGL Support field of the
Identify Controller data structure.
@NVME_SC_SGL_INVALID_METADATA: Metadata SGL Length Invalid: This may
occur if the length of a Metadata SGL is
too short. This may occur if the length
of a Metadata SGL is too long and the
controller does not support SGL transfers
longer than the amount of data to be
transferred as indicated in the SGL
Support field of the Identify Controller
data structure.
@NVME_SC_SGL_INVALID_TYPE: SGL Descriptor Type Invalid: The type of
an SGL Descriptor is a type that is not
supported by the controller.
@NVME_SC_CMB_INVALID_USE: Invalid Use of Controller Memory Buffer:
The attempted use of the Controller
Memory Buffer is not supported by the
controller.
@NVME_SC_PRP_INVALID_OFFSET: PRP Offset Invalid: The Offset field for
a PRP entry is invalid.
@NVME_SC_AWU_EXCEEDED: Atomic Write Unit Exceeded: The length
specified exceeds the atomic write unit size.
@NVME_SC_OP_DENIED: Operation Denied: The command was denied
due to lack of access rights. Refer to
the appropriate security specification.
@NVME_SC_SGL_INVALID_OFFSET: SGL Offset Invalid: The offset specified
in a descriptor is invalid. This may
occur when using capsules for data
transfers in NVMe over Fabrics
implementations and an invalid offset in
the capsule is specified.
@NVME_SC_HOSTID_FORMAT: Host Identifier Inconsistent Format: The
NVM subsystem detected the simultaneous
use of 64- bit and 128-bit Host
Identifier values on different
controllers.
@NVME_SC_KAT_EXPIRED: Keep Alive Timer Expired: The Keep Alive
Timer expired.
@NVME_SC_KAT_INVALID: Keep Alive Timeout Invalid: The Keep
Alive Timeout value specified is invalid.
@NVME_SC_CMD_ABORTED_PREMEPT: Command Aborted due to Preempt and Abort:
The command was aborted due to a
Reservation Acquire command.
@NVME_SC_SANITIZE_FAILED: Sanitize Failed: The most recent sanitize
operation failed and no recovery action
has been successfully completed.
@NVME_SC_SANITIZE_IN_PROGRESS: Sanitize In Progress: The requested
function (e.g., command) is prohibited
while a sanitize operation is in
progress.
@NVME_SC_SGL_INVALID_GRANULARITY: SGL Data Block Granularity Invalid: The
Address alignment or Length granularity
for an SGL Data Block descriptor is
invalid.
@NVME_SC_CMD_IN_CMBQ_NOT_SUPP: Command Not Supported for Queue in CMB:
The implementation does not support
submission of the command to a Submission
Queue in the Controller Memory Buffer or
command completion to a Completion Queue
in the Controller Memory Buffer.
@NVME_SC_NS_WRITE_PROTECTED: Namespace is Write Protected: The command
is prohibited while the namespace is
write protected as a result of a change
in the namespace write protection state
as defined by the Namespace Write
Protection State Machine.
@NVME_SC_CMD_INTERRUPTED: Command Interrupted: Command processing
was interrupted and the controller is
unable to successfully complete the
command. The host should retry the
command.
@NVME_SC_TRAN_TPORT_ERROR: Transient Transport Error: A transient
transport error was detected. If the
command is retried on the same
controller, the command is likely to
succeed. A command that fails with a
transient transport error four or more
times should be treated as a persistent
transport error that is not likely to
succeed if retried on the same
controller.
@NVME_SC_PROHIBITED_BY_CMD_AND_FEAT: Command Prohibited by Command and Feature
Lockdown: The command was aborted due to
command execution being prohibited by
the Command and Feature Lockdown.
@NVME_SC_ADMIN_CMD_MEDIA_NOT_READY: Admin Command Media Not Ready: The Admin
command requires access to media and
the media is not ready.
@NVME_SC_INVALID_KEY_TAG: The command was aborted due to an invalid KEYTAG
field value.
@NVME_SC_HOST_DISPERSED_NS_NOT_ENABLED: The command is prohibited while the
Host Disperesed Namespace Support (HDISNS) field is not
set to 1h in the Host Behavior Support feature.
@NVME_SC_HOST_ID_NOT_INITIALIZED: Host Identifier Not Initialized.
@NVME_SC_INCORRECT_KEY: The command was aborted due to the key associated
with the KEYTAG field being incorrect.
@NVME_SC_FDP_DISABLED: Command is not allowed when
Flexible Data Placement is disabled.
@NVME_SC_INVALID_PLACEMENT_HANDLE_LIST: The Placement Handle List is invalid
due to invalid Reclaim Unit Handle Identifier or
valid Reclaim Unit Handle Identifier but restricted or
the Placement Handle List number of entries exceeded the
maximum number allowed.
@NVME_SC_LBA_RANGE: LBA Out of Range: The command references
an LBA that exceeds the size of the namespace.
@NVME_SC_CAP_EXCEEDED: Capacity Exceeded: Execution of the
command has caused the capacity of the
namespace to be exceeded.
@NVME_SC_NS_NOT_READY: Namespace Not Ready: The namespace is not
ready to be accessed as a result of a
condition other than a condition that is
reported as an Asymmetric Namespace
Access condition.
@NVME_SC_RESERVATION_CONFLICT: Reservation Conflict: The command was
aborted due to a conflict with a
reservation held on the accessed
namespace.
@NVME_SC_FORMAT_IN_PROGRESS: Format In Progress: A Format NVM command
is in progress on the namespace.
@NVME_SC_INVALID_VALUE_SIZE: The value size is not valid.
@NVME_SC_INVALID_KEY_SIZE: The KV key size is not valid.
@NVME_SC_KV_KEY_NOT_EXISTS: The Store If Key Exists (SIKE) bit is set to
‘1’ in the Store Option field and the KV key does not
exists.
@NVME_SC_UNRECOVERED_ERROR: There was an unrecovered error when reading
from the meidum.
@NVME_SC_KEY_EXISTS: The Store If No Key Exists (SINKE) bit is set to ‘1’
in the Store Option field and the KV key exists.
@NVME_SC_CQ_INVALID: Completion Queue Invalid: The Completion
Queue identifier specified in the command
does not exist.
@NVME_SC_QID_INVALID: Invalid Queue Identifier: The creation of
the I/O Completion Queue failed due to an
invalid queue identifier specified as
part of the command. An invalid queue
identifier is one that is currently in
use or one that is outside the range
supported by the controller.
@NVME_SC_QUEUE_SIZE: Invalid Queue Size: The host attempted to
create an I/O Completion Queue with an
invalid number of entries.
@NVME_SC_ABORT_LIMIT: Abort Command Limit Exceeded: The number
of concurrently outstanding Abort commands
has exceeded the limit indicated in the
Identify Controller data structure.
@NVME_SC_ABORT_MISSING: Abort Command is missing: The abort
command is missing.
@NVME_SC_ASYNC_LIMIT: Asynchronous Event Request Limit
Exceeded: The number of concurrently
outstanding Asynchronous Event Request
commands has been exceeded.
@NVME_SC_FIRMWARE_SLOT: Invalid Firmware Slot: The firmware slot
indicated is invalid or read only. This
error is indicated if the firmware slot
exceeds the number supported.
@NVME_SC_FIRMWARE_IMAGE: Invalid Firmware Image: The firmware
image specified for activation is invalid
and not loaded by the controller.
@NVME_SC_INVALID_VECTOR: Invalid Interrupt Vector: The creation of
the I/O Completion Queue failed due to an
invalid interrupt vector specified as
part of the command.
@NVME_SC_INVALID_LOG_PAGE: Invalid Log Page: The log page indicated
is invalid. This error condition is also
returned if a reserved log page is
requested.
@NVME_SC_INVALID_FORMAT: Invalid Format: The LBA Format specified
is not supported.
@NVME_SC_FW_NEEDS_CONV_RESET: Firmware Activation Requires Conventional Reset:
The firmware commit was successful,
however, activation of the firmware image
requires a conventional reset.
@NVME_SC_INVALID_QUEUE: Invalid Queue Deletion: Invalid I/O
Completion Queue specified to delete.
@NVME_SC_FEATURE_NOT_SAVEABLE: Feature Identifier Not Saveable: The
Feature Identifier specified does not
support a saveable value.
@NVME_SC_FEATURE_NOT_CHANGEABLE: Feature Not Changeable: The Feature
Identifier is not able to be changed.
@NVME_SC_FEATURE_NOT_PER_NS: Feature Not Namespace Specific: The
Feature Identifier specified is not
namespace specific. The Feature
Identifier settings apply across all
namespaces.
@NVME_SC_FW_NEEDS_SUBSYS_RESET: Firmware Activation Requires NVM
Subsystem Reset: The firmware commit was
successful, however, activation of the
firmware image requires an NVM Subsystem.
@NVME_SC_FW_NEEDS_RESET: Firmware Activation Requires Controller
Level Reset: The firmware commit was
successful; however, the image specified
does not support being activated without
a reset.
@NVME_SC_FW_NEEDS_MAX_TIME: Firmware Activation Requires Maximum Time
Violation: The image specified if
activated immediately would exceed the
Maximum Time for Firmware Activation
(MTFA) value reported in Identify
Controller.
@NVME_SC_FW_ACTIVATE_PROHIBITED: Firmware Activation Prohibited: The image
specified is being prohibited from
activation by the controller for vendor
specific reasons.
@NVME_SC_OVERLAPPING_RANGE: Overlapping Range: The downloaded
firmware image has overlapping ranges.
@NVME_SC_NS_INSUFFICIENT_CAP: Namespace Insufficient Capacity: Creating
the namespace requires more free space
than is currently available.
@NVME_SC_NS_ID_UNAVAILABLE: Namespace Identifier Unavailable: The
number of namespaces supported has been
exceeded.
@NVME_SC_NS_ALREADY_ATTACHED: Namespace Already Attached: The
controller is already attached to the
namespace specified.
@NVME_SC_NS_IS_PRIVATE: Namespace Is Private: The namespace is
private and is already attached to one
controller.
@NVME_SC_NS_NOT_ATTACHED: Namespace Not Attached: The request to
detach the controller could not be
completed because the controller is not
attached to the namespace.
@NVME_SC_THIN_PROV_NOT_SUPP: Thin Provisioning Not Supported: Thin
provisioning is not supported by the
controller.
@NVME_SC_CTRL_LIST_INVALID: Controller List Invalid: The controller
list provided contains invalid controller
ids.
@NVME_SC_SELF_TEST_IN_PROGRESS: Device Self-test In Progress: The controller
or NVM subsystem already has a device
self-test operation in process.
@NVME_SC_BP_WRITE_PROHIBITED: Boot Partition Write Prohibited: The
command is trying to modify a locked Boot
Partition.
@NVME_SC_INVALID_CTRL_ID: Invalid Controller Identifier:
@NVME_SC_INVALID_SEC_CTRL_STATE: Invalid Secondary Controller State
@NVME_SC_INVALID_CTRL_RESOURCES: Invalid Number of Controller Resources
@NVME_SC_INVALID_RESOURCE_ID: Invalid Resource Identifier
@NVME_SC_PMR_SAN_PROHIBITED: Sanitize Prohibited While Persistent
Memory Region is Enabled
@NVME_SC_ANA_GROUP_ID_INVALID: ANA Group Identifier Invalid: The specified
ANA Group Identifier (ANAGRPID) is not
supported in the submitted command.
@NVME_SC_ANA_ATTACH_FAILED: ANA Attach Failed: The controller is not
attached to the namespace as a result
of an ANA condition.
@NVME_SC_INSUFFICIENT_CAP: Insufficient Capacity: Requested operation
requires more free space than is currently
available.
@NVME_SC_NS_ATTACHMENT_LIMIT_EXCEEDED: Namespace Attachment Limit Exceeded:
Attaching the ns to a controller causes
max number of ns attachments allowed
to be exceeded.
@NVME_SC_PROHIBIT_CMD_EXEC_NOT_SUPPORTED: Prohibition of Command Execution
Not Supported
@NVME_SC_IOCS_NOT_SUPPORTED: I/O Command Set Not Supported
@NVME_SC_IOCS_NOT_ENABLED: I/O Command Set Not Enabled
@NVME_SC_IOCS_COMBINATION_REJECTED: I/O Command Set Combination Rejected
@NVME_SC_INVALID_IOCS: Invalid I/O Command Set
@NVME_SC_ID_UNAVAILABLE: Identifier Unavailable
@NVME_SC_INVALID_DISCOVERY_INFO: The discovery information provided in
one or more extended discovery
information entries is not applicable
for the type of entity selected in
the Entity Type (ETYPE) field of the
Discovery Information Management
command data portion’s header.
@NVME_SC_ZONING_DATA_STRUCT_LOCKED:The requested Zoning data structure
is locked on the CDC.
@NVME_SC_ZONING_DATA_STRUCT_NOTFND:The requested Zoning data structure
does not exist on the CDC.
@NVME_SC_INSUFFICIENT_DISC_RES: The number of discover information
entries provided in the data portion
of the Discovery Information
Management command for a registration
task (i.e., TAS field cleared to 0h)
exceeds the available capacity for
new discovery information entries on
the CDC or DDC. This may be a
transient condition.
@NVME_SC_REQSTD_FUNCTION_DISABLED: Fabric Zoning is not enabled on the
CDC
@NVME_SC_ZONEGRP_ORIGINATOR_INVLD: The NQN contained in the ZoneGroup
Originator field does not match the
Host NQN used by the DDC to connect
to the CDC.
@NVME_SC_INVALID_CONTROLER_DATA_QUEUE: This error indicates that the
specified Controller Data Queue
Identifier is invalid for the controller
processing the command.
@NVME_SC_NOT_ENOUGH_RESOURCES: This error indicates that there is not
enough resources in the controller to
process the command.
@NVME_SC_CONTROLLER_SUSPENDED: The operation requested is not allowed if
the specified controller is suspended.
@NVME_SC_CONTROLLER_NOT_SUSPENDED: The operation requested is not allowed if
the specified controller is not
suspended.
@NVME_SC_CONTROLLER_DATA_QUEUE_FULL: The controller detected that a
Controller Data Queue became full.
@NVME_SC_BAD_ATTRIBUTES: Conflicting Dataset Management Attributes
@NVME_SC_INVALID_PI: Invalid Protection Information
@NVME_SC_READ_ONLY: Attempted Write to Read Only Range
@NVME_SC_CMD_SIZE_LIMIT_EXCEEDED: Command Size Limit Exceeded
@NVME_SC_INCOMPATIBLE_NS: Incompatible Namespace or Format: At
least one source namespace and the
destination namespace have incompatible
formats.
@NVME_SC_FAST_COPY_NOT_POSSIBLE: Fast Copy Not Possible: The Fast Copy
Only (FCO) bit was set to ‘1’ in a Source
Range entry and the controller was not
able to use fast copy operations to copy
the specified data.
@NVME_SC_OVERLAPPING_IO_RANGE: Overlapping I/O Range: A source logical
block range overlaps the destination
logical block range.
@NVME_SC_INSUFFICIENT_RESOURCES: Insufficient Resources: A resource
shortage prevented the controller from
performing the requested copy.
@NVME_SC_CONNECT_FORMAT: Incompatible Format: The NVM subsystem
does not support the record format
specified by the host.
@NVME_SC_CONNECT_CTRL_BUSY: Controller Busy: The controller is
already associated with a host.
@NVME_SC_CONNECT_INVALID_PARAM: Connect Invalid Parameters: One or more
of the command parameters.
@NVME_SC_CONNECT_RESTART_DISC: Connect Restart Discovery: The NVM
subsystem requested is not available.
@NVME_SC_CONNECT_INVALID_HOST: Connect Invalid Host: The host is either
not allowed to establish an association
to any controller in the NVM subsystem or
the host is not allowed to establish an
association to the specified controller
@NVME_SC_DISCONNECT_INVALID_QTYPE: Invalid Queue Type: The command was sent
on the wrong queue type.
@NVME_SC_DISCOVERY_RESTART: Discover Restart: The snapshot of the
records is now invalid or out of date.
@NVME_SC_AUTH_REQUIRED: Authentication Required: NVMe in-band
authentication is required and the queue
has not yet been authenticated.
@NVME_SC_WRITE_FAULT: Write Fault: The write data could not be
committed to the media.
@NVME_SC_READ_ERROR: Unrecovered Read Error: The read data
could not be recovered from the media.
@NVME_SC_GUARD_CHECK: End-to-end Guard Check Error: The command
was aborted due to an end-to-end guard
check failure.
@NVME_SC_APPTAG_CHECK: End-to-end Application Tag Check Error:
The command was aborted due to an
end-to-end application tag check failure.
@NVME_SC_REFTAG_CHECK: End-to-end Reference Tag Check Error: The
command was aborted due to an end-to-end
reference tag check failure.
@NVME_SC_COMPARE_FAILED: Compare Failure: The command failed due
to a miscompare during a Compare command.
@NVME_SC_ACCESS_DENIED: Access Denied: Access to the namespace
and/or LBA range is denied due to lack of
access rights.
@NVME_SC_UNWRITTEN_BLOCK: Deallocated or Unwritten Logical Block:
The command failed due to an attempt to
read from or verify an LBA range
containing a deallocated or unwritten
logical block.
@NVME_SC_STORAGE_TAG_CHECK: End-to-End Storage Tag Check Error: The
command was aborted due to an end-to-end
storage tag check failure.
@NVME_SC_ANA_INTERNAL_PATH_ERROR: Internal Path Error: The command was not
completed as the result of a controller
internal error that is specific to the
controller processing the command.
@NVME_SC_ANA_PERSISTENT_LOSS: Asymmetric Access Persistent Loss: The
requested function (e.g., command) is not
able to be performed as a result of the
relationship between the controller and
the namespace being in the ANA Persistent
Loss state.
@NVME_SC_ANA_INACCESSIBLE: Asymmetric Access Inaccessible: The
requested function (e.g., command) is not
able to be performed as a result of the
relationship between the controller and
the namespace being in the ANA
Inaccessible state.
@NVME_SC_ANA_TRANSITION: Asymmetric Access Transition: The
requested function (e.g., command) is not
able to be performed as a result of the
relationship between the controller and
the namespace transitioning between
Asymmetric Namespace Access states.
@NVME_SC_CTRL_PATH_ERROR: Controller Pathing Error: A pathing error
was detected by the controller.
@NVME_SC_HOST_PATH_ERROR: Host Pathing Error: A pathing error was
detected by the host.
@NVME_SC_CMD_ABORTED_BY_HOST: Command Aborted By Host: The command was
aborted as a result of host action.
@NVME_SC_CRD: Mask to get value of Command Retry Delay
index
@NVME_SC_MORE: More bit. If set, more status information
for this command as part of the Error
Information log that may be retrieved with
the Get Log Page command.
@NVME_SC_DNR: Do Not Retry bit. If set, if the same
command is re-submitted to any controller
in the NVM subsystem, then that
re-submitted command is expected to fail.
@NVME_SC_ZNS_INVALID_OP_REQUEST: Invalid Zone Operation Request:
The operation requested is invalid. This may be due to
various conditions, including: attempting to allocate a
ZRWA when a zone is not in the ZSE:Empty state; or
invalid Flush Explicit ZRWA Range Send Zone Action
operation.
@NVME_SC_ZNS_ZRWA_RESOURCES_UNAVAILABLE: ZRWA Resources Unavailable:
No ZRWAs are available.
@NVME_SC_ZNS_BOUNDARY_ERROR: Zone Boundary Error: The command specifies
logical blocks in more than one zone.
@NVME_SC_ZNS_FULL: Zone Is Full: The accessed zone is in the
ZSF:Full state.
@NVME_SC_ZNS_READ_ONLY: Zone Is Read Only: The accessed zone is
in the ZSRO:Read Only state.
@NVME_SC_ZNS_OFFLINE: Zone Is Offline: The accessed zone is
in the ZSO:Offline state.
@NVME_SC_ZNS_INVALID_WRITE: Zone Invalid Write: The write to a zone
was not at the write pointer.
@NVME_SC_ZNS_TOO_MANY_ACTIVE: Too Many Active Zones: The controller
does not allow additional active zones.
@NVME_SC_ZNS_TOO_MANY_OPENS: Too Many Open Zones: The controller does
not allow additional open zones.
@NVME_SC_ZNS_INVAL_TRANSITION: Invalid Zone State Transition: The request
is not a valid zone state transition.
enum nvme_status_result - Result of the device self-test operation
@NVME_ST_RESULT_NO_ERR: Operation completed without error.
@NVME_ST_RESULT_ABORTED: Operation was aborted by a Device Self-test command.
@NVME_ST_RESULT_CLR: Operation was aborted by a Controller Level Reset.
@NVME_ST_RESULT_NS_REMOVED: Operation was aborted due to a removal of
a namespace from the namespace inventory.
@NVME_ST_RESULT_ABORTED_FORMAT: Operation was aborted due to the processing
of a Format NVM command.
@NVME_ST_RESULT_FATAL_ERR: A fatal error or unknown test error occurred
while the controller was executing the device
self-test operation and the operation did
not complete.
@NVME_ST_RESULT_UNKNOWN_SEG_FAIL: Operation completed with a segment that failed
and the segment that failed is not known.
@NVME_ST_RESULT_KNOWN_SEG_FAIL: Operation completed with one or more failed
segments and the first segment that failed
is indicated in the Segment Number field.
@NVME_ST_RESULT_ABORTED_UNKNOWN: Operation was aborted for unknown reason.
@NVME_ST_RESULT_ABORTED_SANITIZE: Operation was aborted due to a sanitize operation.
@NVME_ST_RESULT_NOT_USED: Entry not used (does not contain a test result).
@NVME_ST_RESULT_MASK: Mask to get the status result value from
the &struct nvme_st_result.dsts field.
enum nvme_subsys_type - Type of the NVM subsystem.
@NVME_NQN_DISC: Discovery type target subsystem. Describes a referral to another
Discovery Service composed of Discovery controllers that provide
additional discovery records. Multiple Referral entries may
be reported for each Discovery Service (if that Discovery Service
has multiple NVM subsystem ports or supports multiple protocols).
@NVME_NQN_NVME: NVME type target subsystem. Describes an NVM subsystem whose
controllers may have attached namespaces (an NVM subsystem
that is not composed of Discovery controllers). Multiple NVM
Subsystem entries may be reported for each NVM subsystem if
that NVM subsystem has multiple NVM subsystem ports.
@NVME_NQN_CURR: Current Discovery type target subsystem. Describes this Discovery
subsystem (the Discovery Service that contains the controller
processing the Get Log Page command). Multiple Current Discovery
Subsystem entries may be reported for this Discovery subsystem
if the current Discovery subsystem has multiple NVM subsystem
ports.
enum nvme_telemetry_da - Telemetry Log Data Area
@NVME_TELEMETRY_DA_CTRL_DETERMINE: The controller determines the data areas to be created
@NVME_TELEMETRY_DA_1: Data Area 1
@NVME_TELEMETRY_DA_2: Data Area 2
@NVME_TELEMETRY_DA_3: Data Area 3
@NVME_TELEMETRY_DA_4: Data Area 4
enum nvme_unit - Defined buffer size and write throughput granularity units
@NVME_UNIT_B: Bytes or Bytes/second
@NVME_UNIT_1K: 1 KiB or 1 KiB/second
@NVME_UNIT_1M: 1 MiB or 1 MiB/second
@NVME_UNIT_1G: 1 GiB or 1 GiB/second
enum nvme_vs - This field indicates the version
@NVME_VS_TER_SHIFT: Shift amount to get the tertiary version
@NVME_VS_MNR_SHIFT: Shift amount to get the minor version
@NVME_VS_MJR_SHIFT: Shift amount to get the major version
@NVME_VS_TER_MASK: Mask to get the tertiary version
@NVME_VS_MNR_MASK: Mask to get the minor version
@NVME_VS_MJR_MASK: Mask to get the major version
enum nvme_zns_recv_action - Zone Management Receive - Zone Receive Action Specific Features
@NVME_ZNS_ZRA_REPORT_ZONES: Report Zones
@NVME_ZNS_ZRA_EXTENDED_REPORT_ZONES: Extended Report Zones
enum nvme_zns_report_options - Zone Management Receive - Zone Receive Action Specific Field
@NVME_ZNS_ZRAS_REPORT_ALL: List all zones
@NVME_ZNS_ZRAS_REPORT_EMPTY: List the zones in the ZSE:Empty state
@NVME_ZNS_ZRAS_REPORT_IMPL_OPENED: List the zones in the ZSIO:Implicitly Opened state
@NVME_ZNS_ZRAS_REPORT_EXPL_OPENED: List the zones in the ZSEO:Explicitly Opened state
@NVME_ZNS_ZRAS_REPORT_CLOSED: List the zones in the ZSC:Closed state
@NVME_ZNS_ZRAS_REPORT_FULL: List the zones in the ZSF:Full state
@NVME_ZNS_ZRAS_REPORT_READ_ONLY: List the zones in the ZSRO:Read Only state
@NVME_ZNS_ZRAS_REPORT_OFFLINE: List the zones in the ZSO:Offline state
enum nvme_zns_send_action - Zone Management Send - Zone Send Action
@NVME_ZNS_ZSA_CLOSE: Close Zone
@NVME_ZNS_ZSA_FINISH: Finish Zone
@NVME_ZNS_ZSA_OPEN: Open Zone
@NVME_ZNS_ZSA_RESET: Reset Zone
@NVME_ZNS_ZSA_OFFLINE: Offline Zone
@NVME_ZNS_ZSA_SET_DESC_EXT: Set Zone Descriptor Extension
@NVME_ZNS_ZSA_ZRWA_FLUSH: Flush
enum nvme_zns_za - Zone Descriptor Data Structure
@NVME_ZNS_ZA_ZFC: Zone Finished by Controller
@NVME_ZNS_ZA_FZR: Finish Zone Recommended
@NVME_ZNS_ZA_RZR: Reset Zone Recommended
@NVME_ZNS_ZA_ZRWAV:
@NVME_ZNS_ZA_ZDEV: Zone Descriptor Extension Valid
enum nvme_zns_zs - Zone Descriptor Data Structure - Zone State
@NVME_ZNS_ZS_EMPTY: Empty state
@NVME_ZNS_ZS_IMPL_OPEN: Implicitly open state
@NVME_ZNS_ZS_EXPL_OPEN: Explicitly open state
@NVME_ZNS_ZS_CLOSED: Closed state
@NVME_ZNS_ZS_READ_ONLY: Read only state
@NVME_ZNS_ZS_FULL: Full state
@NVME_ZNS_ZS_OFFLINE: Offline state
enum nvmf_dim_entfmt - Discovery Information Management Entry Format
@NVMF_DIM_ENTFMT_BASIC: Basic discovery information entry
@NVMF_DIM_ENTFMT_EXTENDED: Extended discovery information entry
enum nvmf_disc_eflags - Discovery Log Page entry flags.
@NVMF_DISC_EFLAGS_NONE: Indicates that none of the DUPRETINFO or EPCSD
features are supported.
@NVMF_DISC_EFLAGS_DUPRETINFO: Duplicate Returned Information (DUPRETINFO):
Indicates that using the content of this entry
to access this Discovery Service returns the same
information that is returned by using the content
of other entries in this log page that also have
this flag set.
@NVMF_DISC_EFLAGS_EPCSD: Explicit Persistent Connection Support for Discovery (EPCSD):
Indicates that Explicit Persistent Connections are
supported for the Discovery controller.
@NVMF_DISC_EFLAGS_NCC: No CDC Connectivity (NCC): If set to
‘1’, then no DDC that describes this entry
is currently connected to the CDC. If
cleared to ‘0’, then at least one DDC that
describes this entry is currently
connected to the CDC. If the Discovery
controller returning this log page is not
a CDC, then this bit shall be cleared to
‘0’ and should be ignored by the host.
enum nvmf_log_discovery_lid_support - Discovery log specific support
@NVMF_LOG_DISC_LID_NONE: None
@NVMF_LOG_DISC_LID_EXTDLPES: Extended Discovery Log Page Entries Supported
@NVMF_LOG_DISC_LID_PLEOS: Port Local Entries Only Supported
@NVMF_LOG_DISC_LID_ALLSUBES: All NVM Subsystem Entries Supported
enum nvmf_log_discovery_lsp - Discovery log specific field
@NVMF_LOG_DISC_LSP_NONE: None
@NVMF_LOG_DISC_LSP_EXTDLPE: Extended Discovery Log Page Entries
@NVMF_LOG_DISC_LSP_PLEO: Port Local Entries Only
@NVMF_LOG_DISC_LSP_ALLSUBE: All NVM Subsystem Entries
enum nvmf_rdma_cms - RDMA Connection Management Service Type codes for
Discovery Log Page entry TSAS RDMA_CMS field
@NVMF_RDMA_CMS_RDMA_CM: Sockets based endpoint addressing
enum nvmf_tcp_sectype - Transport Specific Address Subtype Definition for
NVMe/TCP Transport
@NVMF_TCP_SECTYPE_NONE: No Security
@NVMF_TCP_SECTYPE_TLS: Transport Layer Security version 1.2
@NVMF_TCP_SECTYPE_TLS13: Transport Layer Security version 1.3 or a subsequent
version. The TLS protocol negotiates the version and
cipher suite for each TCP connection.
enum nvmf_treq - Transport Requirements codes for Discovery Log Page entry TREQ field
@NVMF_TREQ_NOT_SPECIFIED: Not specified
@NVMF_TREQ_REQUIRED: Required
@NVMF_TREQ_NOT_REQUIRED: Not Required
@NVMF_TREQ_DISABLE_SQFLOW: SQ flow control disable supported
enum nvmf_trtype - Transport Type codes for Discovery Log Page entry TRTYPE field
@NVMF_TRTYPE_UNSPECIFIED: Not indicated
@NVMF_TRTYPE_RDMA: RDMA
@NVMF_TRTYPE_FC: Fibre Channel
@NVMF_TRTYPE_TCP: TCP
@NVMF_TRTYPE_LOOP: Intra-host Transport (i.e., loopback), reserved
for host usage.
@NVMF_TRTYPE_MAX: Maximum value for &enum nvmf_trtype
union nvmf_tsas - Transport Specific Address Subtype
@common: Common transport specific attributes
@rdma: RDMA transport specific attribute settings
@qptype: RDMA QP Service Type (RDMA_QPTYPE): Specifies the type of RDMA
Queue Pair. See &enum nvmf_rdma_qptype.
@prtype: RDMA Provider Type (RDMA_PRTYPE): Specifies the type of RDMA
provider. See &enum nvmf_rdma_prtype.
@cms: RDMA Connection Management Service (RDMA_CMS): Specifies the type
of RDMA IP Connection Management Service. See &enum nvmf_rdma_cms.
@pkey: RDMA_PKEY: Specifies the Partition Key when AF_IB (InfiniBand)
address family type is used.
@tcp: TCP transport specific attribute settings
@sectype: Security Type (SECTYPE): Specifies the type of security used by the
NVMe/TCP port. If SECTYPE is a value of 0h (No Security), then the
host shall set up a normal TCP connection. See &enum nvmf_tcp_sectype.