title: nvme_identify_cns(2)

summary: Identify - CNS Values

text:
# nvme_identify_cns(2)

## NAME
enum nvme_identify_cns - Identify - CNS Values

## SYNOPSIS
enum nvme_identify_cns {

NVME_IDENTIFY_CNS_NS ,

NVME_IDENTIFY_CNS_CTRL ,

NVME_IDENTIFY_CNS_NS_ACTIVE_LIST ,

NVME_IDENTIFY_CNS_NS_DESC_LIST ,

NVME_IDENTIFY_CNS_NVMSET_LIST ,

NVME_IDENTIFY_CNS_CSI_NS ,

NVME_IDENTIFY_CNS_CSI_CTRL ,

NVME_IDENTIFY_CNS_CSI_NS_ACTIVE_LIST ,

NVME_IDENTIFY_CNS_CSI_INDEPENDENT_ID_NS ,

NVME_IDENTIFY_CNS_NS_USER_DATA_FORMAT ,

NVME_IDENTIFY_CNS_CSI_NS_USER_DATA_FORMAT ,

NVME_IDENTIFY_CNS_ALLOCATED_NS_LIST ,

NVME_IDENTIFY_CNS_ALLOCATED_NS ,

NVME_IDENTIFY_CNS_NS_CTRL_LIST ,

NVME_IDENTIFY_CNS_CTRL_LIST ,

NVME_IDENTIFY_CNS_PRIMARY_CTRL_CAP ,

NVME_IDENTIFY_CNS_SECONDARY_CTRL_LIST ,

NVME_IDENTIFY_CNS_NS_GRANULARITY ,

NVME_IDENTIFY_CNS_UUID_LIST ,

NVME_IDENTIFY_CNS_DOMAIN_LIST ,

NVME_IDENTIFY_CNS_ENDURANCE_GROUP_ID ,

NVME_IDENTIFY_CNS_CSI_ALLOCATED_NS_LIST ,

NVME_IDENTIFY_CNS_CSI_ID_NS_DATA_STRUCTURE ,

NVME_IDENTIFY_CNS_COMMAND_SET_STRUCTURE ,

NVME_IDENTIFY_CNS_UNDERLYING_NS_LIST ,

NVME_IDENTIFY_CNS_PORTS_LIST ,

NVME_IDENTIFY_CNS_IOCS_IND_ID_ALLOC_NS ,

NVME_IDENTIFY_CNS_SUPPORTED_CTRL_STATE_FORMATS

};

## Constants
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


package: libnvme-devel

title: nvme_identify_ctrl(2)

summary: Retrieves nvme identify controller

text:
# nvme_identify_ctrl(2)

## NAME
nvme_identify_ctrl - Retrieves nvme identify controller

## SYNOPSIS
int nvme_identify_ctrl (int fd , struct nvme_id_ctrl *id );

## ARGUMENTS
fd

File descriptor of nvme device

id

User space destination address to transfer the data,

## DESCRIPTION
Sends nvme identify with CNS value NVME_IDENTIFY_CNS_CTRL.

See struct nvme_id_ctrl for details on the data returned.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_identify_ctrl_csi(2)

text:
# nvme_identify_ctrl_csi(2)

## NAME
nvme_identify_ctrl_csi - I/O command set specific Identify Controller data

## SYNOPSIS
int nvme_identify_ctrl_csi (int fd , enum nvme_csi csi , void *data );

## ARGUMENTS
fd

File descriptor of nvme device

csi

Command Set Identifier

data

User space destination address to transfer the data

## DESCRIPTION
An I/O Command Set specific Identify Controller data structure is returned to the host for the controller processing the command. The specific Identify Controller data structure to be returned is specified by csi.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_identify_ctrl_list(2)

summary: Retrieves identify controller list

text:
# nvme_identify_ctrl_list(2)

## NAME
nvme_identify_ctrl_list - Retrieves identify controller list

## SYNOPSIS
int nvme_identify_ctrl_list (int fd , __u16 cntid , struct nvme_ctrl_list *cntlist );

## ARGUMENTS
fd

File descriptor of nvme device

cntid

Starting CNTLID to return in the list

cntlist

User space destination address to transfer the data

## DESCRIPTION
Up to 2047 controller identifiers is returned containing a controller identifier greater than or equal to the controller identifier specified in cntid.

See struct nvme_ctrl_list for a definition of the structure returned.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_identify_domain_list(2)

summary: Domain list data

text:
# nvme_identify_domain_list(2)

## NAME
nvme_identify_domain_list - Domain list data

## SYNOPSIS
int nvme_identify_domain_list (int fd , __u16 domid , struct nvme_id_domain_list *list );

## ARGUMENTS
fd

File descriptor of nvme device

domid

Domain ID

list

User space destination address to transfer data

## DESCRIPTION
A list of 31 domain IDs is returned to the host containing domain attributes in increasing order that are greater than the value specified in the domid field.

See struct nvme_identify_domain_attr for the definition of the returned structure.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_identify_endurance_group_list(2)

summary: Endurance group list data

text:
# nvme_identify_endurance_group_list(2)

## NAME
nvme_identify_endurance_group_list - Endurance group list data

## SYNOPSIS
int nvme_identify_endurance_group_list (int fd , __u16 endgrp_id , struct nvme_id_endurance_group_list *list );

## ARGUMENTS
fd

File descriptor of nvme device

endgrp_id

Endurance group identifier

list

Array of endurance group identifiers

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


text:
# nvme_identify_independent_identify_ns(2)

## NAME
nvme_identify_independent_identify_ns - I/O command set independent Identify namespace data

## SYNOPSIS
int nvme_identify_independent_identify_ns (int fd , __u32 nsid , struct nvme_id_independent_id_ns *ns );

## ARGUMENTS
fd

File descriptor of nvme device

nsid

Return namespaces greater than this identifier

ns

I/O Command Set Independent Identify Namespace data structure

## DESCRIPTION
The I/O command set independent Identify namespace data structure for the namespace identified with ns is returned to the host.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_identify_iocs(2)

summary: I/O command set data structure

text:
# nvme_identify_iocs(2)

## NAME
nvme_identify_iocs - I/O command set data structure

## SYNOPSIS
int nvme_identify_iocs (int fd , __u16 cntlid , struct nvme_id_iocs *iocs );

## ARGUMENTS
fd

File descriptor of nvme device

cntlid

Controller ID

iocs

User space destination address to transfer the data

## DESCRIPTION
Retrieves list of the controller's supported io command set vectors. See struct nvme_id_iocs.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


text:
# nvme_identify_iocs_ns_csi_user_data_format(2)

## NAME
nvme_identify_iocs_ns_csi_user_data_format - Identify I/O command set namespace data structure

## SYNOPSIS
int nvme_identify_iocs_ns_csi_user_data_format (int fd , __u16 user_data_format , __u8 uuidx , enum nvme_csi csi , void *data );

## ARGUMENTS
fd

File descriptor of nvme device

user_data_format

Return namespaces capability of identifier

uuidx

UUID selection, if supported

csi

Command Set Identifier

data

User space destination address to transfer the data

## DESCRIPTION
I/O Command Set specific Identify Namespace data structure for the specified User Data Format index containing the namespace capabilities for the I/O Command Set specified in the CSI field.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_identify_ns(2)

summary: Retrieves nvme identify namespace

text:
# nvme_identify_ns(2)

## NAME
nvme_identify_ns - Retrieves nvme identify namespace

## SYNOPSIS
int nvme_identify_ns (int fd , __u32 nsid , struct nvme_id_ns *ns );

## ARGUMENTS
fd

File descriptor of nvme device

nsid

Namespace to identify

ns

User space destination address to transfer the data

## DESCRIPTION
If the Namespace Identifier (NSID) field specifies an active NSID, then the Identify Namespace data structure is returned to the host for that specified namespace.

If the controller supports the Namespace Management capability and the NSID field is set to NVME_NSID_ALL, then the controller returns an Identify Namespace data structure that specifies capabilities that are common across namespaces for this controller.

See struct nvme_id_ns for details on the structure returned.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_identify_ns_csi(2)

text:
# nvme_identify_ns_csi(2)

## NAME
nvme_identify_ns_csi - I/O command set specific identify namespace data

## SYNOPSIS
int nvme_identify_ns_csi (int fd , __u32 nsid , __u8 uuidx , enum nvme_csi csi , void *data );

## ARGUMENTS
fd

File descriptor of nvme device

nsid

Namespace to identify

uuidx

UUID Index for differentiating vendor specific encoding

csi

Command Set Identifier

data

User space destination address to transfer the data

## DESCRIPTION
An I/O Command Set specific Identify Namespace data structure is returned for the namespace specified in nsid.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


summary: Identify namespace user data format

text:
# nvme_identify_ns_csi_user_data_format(2)

## NAME
nvme_identify_ns_csi_user_data_format - Identify namespace user data format

## SYNOPSIS
int nvme_identify_ns_csi_user_data_format (int fd , __u16 user_data_format , __u8 uuidx , enum nvme_csi csi , void *data );

## ARGUMENTS
fd

File descriptor of nvme device

user_data_format

Return namespaces capability of identifier

uuidx

UUID selection, if supported

csi

Command Set Identifier

data

User space destination address to transfer the data

## DESCRIPTION
Identify Namespace data structure for the specified User Data Format index containing the namespace capabilities for the NVM Command Set.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_identify_ns_descs(2)

summary: Retrieves namespace descriptor list

text:
# nvme_identify_ns_descs(2)

## NAME
nvme_identify_ns_descs - Retrieves namespace descriptor list

## SYNOPSIS
int nvme_identify_ns_descs (int fd , __u32 nsid , struct nvme_ns_id_desc *descs );

## ARGUMENTS
fd

File descriptor of nvme device

nsid

The namespace id to retrieve descriptors

descs

User space destination address to transfer the data

## DESCRIPTION
A list of Namespace Identification Descriptor structures is returned to the host for the namespace specified in the Namespace Identifier (NSID) field if it is an active NSID.

The data returned is in the form of an array of 'struct nvme_ns_id_desc'.

See struct nvme_ns_id_desc for the definition of the returned structure.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_identify_ns_granularity(2)

text:
# nvme_identify_ns_granularity(2)

## NAME
nvme_identify_ns_granularity - Retrieves namespace granularity identification

## SYNOPSIS
int nvme_identify_ns_granularity (int fd , struct nvme_id_ns_granularity_list *gr_list );

## ARGUMENTS
fd

File descriptor of nvme device

gr_list

User space destination address to transfer the data

## DESCRIPTION
If the controller supports reporting of Namespace Granularity, then a Namespace Granularity List is returned to the host for up to sixteen namespace granularity descriptors

See struct nvme_id_ns_granularity_list for the definition of the returned structure.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_identify_nsid_ctrl_list(2)

text:
# nvme_identify_nsid_ctrl_list(2)

## NAME
nvme_identify_nsid_ctrl_list - Retrieves controller list attached to an nsid

## SYNOPSIS
int nvme_identify_nsid_ctrl_list (int fd , __u32 nsid , __u16 cntid , struct nvme_ctrl_list *cntlist );

## ARGUMENTS
fd

File descriptor of nvme device

nsid

Return controllers that are attached to this nsid

cntid

Starting CNTLID to return in the list

cntlist

User space destination address to transfer the data

## DESCRIPTION
Up to 2047 controller identifiers are returned containing a controller identifier greater than or equal to the controller identifier specified in cntid attached to nsid.

See struct nvme_ctrl_list for a definition of the structure returned.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1


title: nvme_identify_nvmset_list(2)

summary: Retrieves NVM Set List

text:
# nvme_identify_nvmset_list(2)

## NAME
nvme_identify_nvmset_list - Retrieves NVM Set List

## SYNOPSIS
int nvme_identify_nvmset_list (int fd , __u16 nvmsetid , struct nvme_id_nvmset_list *nvmset );

## ARGUMENTS
fd

File descriptor of nvme device

nvmsetid

NVM Set Identifier

nvmset

User space destination address to transfer the data

## DESCRIPTION
Retrieves an NVM Set List, struct nvme_id_nvmset_list. The data structure is an ordered list by NVM Set Identifier, starting with the first NVM Set Identifier supported by the NVM subsystem that is equal to or greater than the NVM Set Identifier.

See struct nvme_id_nvmset_list for the definition of the returned structure.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_identify_primary_ctrl(2)

text:
# nvme_identify_primary_ctrl(2)

## NAME
nvme_identify_primary_ctrl - Retrieve NVMe Primary Controller identification

## SYNOPSIS
int nvme_identify_primary_ctrl (int fd , __u16 cntid , struct nvme_primary_ctrl_cap *cap );

## ARGUMENTS
fd

File descriptor of nvme device

cntid

Return controllers starting at this identifier

cap

User space destination buffer address to transfer the data

## DESCRIPTION
See struct nvme_primary_ctrl_cap for the definition of the returned structure, cap.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_identify_secondary_ctrl_list(2)

summary: Retrieves secondary controller list

text:
# nvme_identify_secondary_ctrl_list(2)

## NAME
nvme_identify_secondary_ctrl_list - Retrieves secondary controller list

## SYNOPSIS
int nvme_identify_secondary_ctrl_list (int fd , __u16 cntid , struct nvme_secondary_ctrl_list *sc_list );

## ARGUMENTS
fd

File descriptor of nvme device

cntid

Return controllers starting at this identifier

sc_list

User space destination address to transfer the data

## DESCRIPTION
A Secondary Controller List is returned to the host for up to 127 secondary controllers associated with the primary controller processing this command. The list contains entries for controller identifiers greater than or equal to the value specified in the Controller Identifier (cntid).

See struct nvme_secondary_ctrls_list for a definition of the returned structure.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_identify_uuid(2)

summary: Retrieves device's UUIDs

text:
# nvme_identify_uuid(2)

## NAME
nvme_identify_uuid - Retrieves device's UUIDs

## SYNOPSIS
int nvme_identify_uuid (int fd , struct nvme_id_uuid_list *uuid_list );

## ARGUMENTS
fd

File descriptor of nvme device

uuid_list

User space destination address to transfer the data

## DESCRIPTION
Each UUID List entry is either 0h, the NVMe Invalid UUID, or a valid UUID. Valid UUIDs are those which are non-zero and are not the NVMe Invalid UUID.

See struct nvme_id_uuid_list for the definition of the returned structure.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_import_tls_key(2)

summary: Import a TLS key

text:
# nvme_import_tls_key(2)

## NAME
nvme_import_tls_key - Import a TLS key

## SYNOPSIS
unsigned char * nvme_import_tls_key (const char *encoded_key , int *key_len , unsigned int *hmac );

## ARGUMENTS
encoded_key

TLS key in PSK interchange format

key_len

Length of the resulting key data

hmac

HMAC algorithm

## DESCRIPTION
Imports key_data in the PSK Interchange format as defined in section 3.6.1.5 of the NVMe TCP Transport specification.

## RETURN
The raw data of the PSK or NULL with errno set on error. It is the responsibility of the caller to free the returned string.


title: nvme_import_tls_key_versioned(2)

summary: Import a TLS key

text:
# nvme_import_tls_key_versioned(2)

## NAME
nvme_import_tls_key_versioned - Import a TLS key

## SYNOPSIS
unsigned char * nvme_import_tls_key_versioned (const char *encoded_key , unsigned char *version , unsigned char *hmac , size_t *key_len );

## ARGUMENTS
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

## DESCRIPTION
Imports key_data in the PSK Interchange format as defined in section 3.6.1.5 of the NVMe TCP Transport specification.

## RETURN
The raw data of the PSK or NULL with errno set on error. It is the responsibility of the caller to free the returned string.


title: nvme_init_copy_range(2)

summary: Constructs a copy range structure

text:
# nvme_init_copy_range(2)

## NAME
nvme_init_copy_range - Constructs a copy range structure

## SYNOPSIS
void nvme_init_copy_range (struct nvme_copy_range *copy , __u16 *nlbs , __u64 *slbas , __u32 *eilbrts , __u32 *elbatms , __u32 *elbats , __u16 nr );

## ARGUMENTS
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


title: nvme_init_copy_range_f1(2)

summary: Constructs a copy range f1 structure

text:
# nvme_init_copy_range_f1(2)

## NAME
nvme_init_copy_range_f1 - Constructs a copy range f1 structure

## SYNOPSIS
void nvme_init_copy_range_f1 (struct nvme_copy_range_f1 *copy , __u16 *nlbs , __u64 *slbas , __u64 *eilbrts , __u32 *elbatms , __u32 *elbats , __u16 nr );

## ARGUMENTS
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


title: nvme_init_copy_range_f2(2)

summary: Constructs a copy range f2 structure

text:
# nvme_init_copy_range_f2(2)

## NAME
nvme_init_copy_range_f2 - Constructs a copy range f2 structure

## SYNOPSIS
void nvme_init_copy_range_f2 (struct nvme_copy_range_f2 *copy , __u32 *snsids , __u16 *nlbs , __u64 *slbas , __u16 *sopts , __u32 *eilbrts , __u32 *elbatms , __u32 *elbats , __u16 nr );

## ARGUMENTS
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


title: nvme_init_copy_range_f3(2)

summary: Constructs a copy range f3 structure

text:
# nvme_init_copy_range_f3(2)

## NAME
nvme_init_copy_range_f3 - Constructs a copy range f3 structure

## SYNOPSIS
void nvme_init_copy_range_f3 (struct nvme_copy_range_f3 *copy , __u32 *snsids , __u16 *nlbs , __u64 *slbas , __u16 *sopts , __u64 *eilbrts , __u32 *elbatms , __u32 *elbats , __u16 nr );

## ARGUMENTS
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


title: nvme_init_ctrl(2)

text:
# nvme_init_ctrl(2)

## NAME
nvme_init_ctrl - Initialize nvme_ctrl_t object for an existing controller.

## SYNOPSIS
int nvme_init_ctrl (nvme_host_t h , nvme_ctrl_t c , int instance );

## ARGUMENTS
h

nvme_host_t object

c

nvme_ctrl_t object

instance

Instance number (e.g. 1 for nvme1)

## RETURN
The ioctl return code. Typically 0 on success.


title: nvme_init_ctrl_list(2)

text:
# nvme_init_ctrl_list(2)

## NAME
nvme_init_ctrl_list - Initialize an nvme_ctrl_list structure from an array.

## SYNOPSIS
void nvme_init_ctrl_list (struct nvme_ctrl_list *cntlist , __u16 num_ctrls , __u16 *ctrlist );

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

## DESCRIPTION
This is intended to be used with any command that takes a controller list argument. See nvme_ns_attach_ctrls and nvme_ns_detach.


title: nvme_init_default_logging(2)

summary: Initialize default (fallback) logging

text:
# nvme_init_default_logging(2)

## NAME
nvme_init_default_logging - Initialize default (fallback) logging

## SYNOPSIS
void nvme_init_default_logging (FILE *fp , int lvl , bool log_pid , bool log_tstamp );

## ARGUMENTS
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

## DESCRIPTION
Sets the default logging settings for the library in case the root object is absent.


title: nvme_init_dsm_range(2)

summary: Constructs a data set range structure

text:
# nvme_init_dsm_range(2)

## NAME
nvme_init_dsm_range - Constructs a data set range structure

## SYNOPSIS
void nvme_init_dsm_range (struct nvme_dsm_range *dsm , __u32 *ctx_attrs , __u32 *llbas , __u64 *slbas , __u16 nr_ranges );

## ARGUMENTS
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

## DESCRIPTION
Each array must be the same size of size 'nr_ranges'. This is intended to be used with constructing a payload for nvme_dsm.

## RETURN
The nvme command status if a response was received or -errno otherwise.


title: nvme_init_logging(2)

summary: Initialize logging

text:
# nvme_init_logging(2)

## NAME
nvme_init_logging - Initialize logging

## SYNOPSIS
void nvme_init_logging (nvme_root_t r , int lvl , bool log_pid , bool log_tstamp );

## ARGUMENTS
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

## DESCRIPTION
Sets the default logging variables for the library.


title: nvme_insert_tls_key(2)

summary: Derive and insert TLS key

text:
# nvme_insert_tls_key(2)

## NAME
nvme_insert_tls_key - Derive and insert TLS key

## SYNOPSIS
long nvme_insert_tls_key (const char *keyring , const char *key_type , const char *hostnqn , const char *subsysnqn , int hmac , unsigned char *configured_key , int key_len );

## ARGUMENTS
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

## DESCRIPTION
Derives a 'retained' TLS key as specified in NVMe TCP 1.0a and stores it as type key_type in the keyring specified by keyring.

## RETURN
The key serial number if the key could be inserted into the keyring or 0 with errno otherwise.


title: nvme_insert_tls_key_versioned(2)

summary: Derive and insert TLS key

text:
# nvme_insert_tls_key_versioned(2)

## NAME
nvme_insert_tls_key_versioned - Derive and insert TLS key

## SYNOPSIS
long nvme_insert_tls_key_versioned (const char *keyring , const char *key_type , const char *hostnqn , const char *subsysnqn , int version , int hmac , unsigned char *configured_key , int key_len );

## ARGUMENTS
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

## DESCRIPTION
Derives a 'retained' TLS key as specified in NVMe TCP 1.0a (if version s set to '0') or NVMe TP8028 (if version is set to '1) and stores it as type key_type in the keyring specified by keyring.

## RETURN
The key serial number if the key could be inserted into the keyring or 0 with errno otherwise.


title: nvme_io(2)

summary: Submit an nvme user I/O command

text:
# nvme_io(2)

## NAME
nvme_io - Submit an nvme user I/O command

## SYNOPSIS
int nvme_io (struct nvme_io_args *args , __u8 opcode );

## ARGUMENTS
args

struct nvme_io_args argument structure

opcode

Opcode to execute

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_io_control_flags(2)

summary: I/O control flags

text:
# nvme_io_control_flags(2)

## NAME
enum nvme_io_control_flags - I/O control flags

## SYNOPSIS
enum nvme_io_control_flags {

NVME_IO_DTYPE_STREAMS ,

NVME_IO_NSZ ,

NVME_IO_STC ,

NVME_IO_DEAC ,

NVME_IO_ZNS_APPEND_PIREMAP ,

NVME_IO_PRINFO_PRCHK_REF ,

NVME_IO_PRINFO_PRCHK_APP ,

NVME_IO_PRINFO_PRCHK_GUARD ,

NVME_IO_PRINFO_PRACT ,

NVME_IO_FUA ,

NVME_IO_LR

};

## Constants
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


title: nvme_io_dsm_flags(2)

summary: Dataset Management flags

text:
# nvme_io_dsm_flags(2)

## NAME
enum nvme_io_dsm_flags - Dataset Management flags

## SYNOPSIS
enum nvme_io_dsm_flags {

NVME_IO_DSM_FREQ_UNSPEC ,

NVME_IO_DSM_FREQ_TYPICAL ,

NVME_IO_DSM_FREQ_RARE ,

NVME_IO_DSM_FREQ_READS ,

NVME_IO_DSM_FREQ_WRITES ,

NVME_IO_DSM_FREQ_RW ,

NVME_IO_DSM_FREQ_ONCE ,

NVME_IO_DSM_FREQ_PREFETCH ,

NVME_IO_DSM_FREQ_TEMP ,

NVME_IO_DSM_LATENCY_NONE ,

NVME_IO_DSM_LATENCY_IDLE ,

NVME_IO_DSM_LATENCY_NORM ,

NVME_IO_DSM_LATENCY_LOW ,

NVME_IO_DSM_SEQ_REQ ,

NVME_IO_DSM_COMPRESSED

};

## Constants
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


title: nvme_io_mgmt_recv(2)

summary: I/O Management Receive command

text:
# nvme_io_mgmt_recv(2)

## NAME
nvme_io_mgmt_recv - I/O Management Receive command

## SYNOPSIS
int nvme_io_mgmt_recv (struct nvme_io_mgmt_recv_args *args );

## ARGUMENTS
args

struct nvme_io_mgmt_recv_args argument structure

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_io_mgmt_recv_mo(2)

text:
# nvme_io_mgmt_recv_mo(2)

## NAME
enum nvme_io_mgmt_recv_mo - I/O Management Receive - Management Operation

## SYNOPSIS
enum nvme_io_mgmt_recv_mo {

NVME_IO_MGMT_RECV_RUH_STATUS

};

## Constants
NVME_IO_MGMT_RECV_RUH_STATUS

Reclaim Unit Handle Status


title: nvme_io_mgmt_send(2)

summary: I/O Management Send command

text:
# nvme_io_mgmt_send(2)

## NAME
nvme_io_mgmt_send - I/O Management Send command

## SYNOPSIS
int nvme_io_mgmt_send (struct nvme_io_mgmt_send_args *args );

## ARGUMENTS
args

struct nvme_io_mgmt_send_args argument structure

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_io_mgmt_send_mo(2)

text:
# nvme_io_mgmt_send_mo(2)

## NAME
enum nvme_io_mgmt_send_mo - I/O Management Send - Management Operation

## SYNOPSIS
enum nvme_io_mgmt_send_mo {

NVME_IO_MGMT_SEND_RUH_UPDATE

};

## Constants
NVME_IO_MGMT_SEND_RUH_UPDATE

Reclaim Unit Handle Update


title: nvme_io_opcode(2)

summary: Opcodes for I/O Commands

text:
# nvme_io_opcode(2)

## NAME
enum nvme_io_opcode - Opcodes for I/O Commands

## SYNOPSIS
enum nvme_io_opcode {

nvme_cmd_flush ,

nvme_cmd_write ,

nvme_cmd_read ,

nvme_cmd_write_uncor ,

nvme_cmd_compare ,

nvme_cmd_write_zeroes ,

nvme_cmd_dsm ,

nvme_cmd_verify ,

nvme_cmd_resv_register ,

nvme_cmd_resv_report ,

nvme_cmd_resv_acquire ,

nvme_cmd_io_mgmt_recv ,

nvme_cmd_resv_release ,

nvme_cmd_cancel ,

nvme_cmd_copy ,

nvme_cmd_io_mgmt_send ,

nvme_zns_cmd_mgmt_send ,

nvme_zns_cmd_mgmt_recv ,

nvme_zns_cmd_append ,

nvme_cmd_fabric

};

## Constants
nvme_cmd_flush

Flush

nvme_cmd_write

Write

nvme_cmd_read

Read

nvme_cmd_write_uncor

Write Uncorrectable

nvme_cmd_compare

Compare

nvme_cmd_write_zeroes

write Zeros

nvme_cmd_dsm

Dataset Management

nvme_cmd_verify

Verify

nvme_cmd_resv_register

Reservation Register

nvme_cmd_resv_report

Reservation Report

nvme_cmd_resv_acquire

Reservation Acquire

nvme_cmd_io_mgmt_recv

I/O Management Receive

nvme_cmd_resv_release

Reservation Release

nvme_cmd_cancel

Cancel

nvme_cmd_copy

Copy

nvme_cmd_io_mgmt_send

I/O Management Send

nvme_zns_cmd_mgmt_send

Zone Management Send

nvme_zns_cmd_mgmt_recv

Zone Management Receive

nvme_zns_cmd_append

Zone Append

nvme_cmd_fabric

Fabric Commands


title: nvme_io_passthru(2)

summary: Submit an nvme io passthrough command

text:
# nvme_io_passthru(2)

## NAME
nvme_io_passthru - Submit an nvme io passthrough command

## SYNOPSIS
int nvme_io_passthru (int fd , __u8 opcode , __u8 flags , __u16 rsvd , __u32 nsid , __u32 cdw2 , __u32 cdw3 , __u32 cdw10 , __u32 cdw11 , __u32 cdw12 , __u32 cdw13 , __u32 cdw14 , __u32 cdw15 , __u32 data_len , void *data , __u32 metadata_len , void *metadata , __u32 timeout_ms , __u32 *result );

## ARGUMENTS
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

## DESCRIPTION
Parameterized form of nvme_submit_io_passthru. This sets up and submits a struct nvme_passthru_cmd.

Known values for opcode are defined in enum nvme_io_opcode.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_io_passthru64(2)

summary: Submit an nvme io passthrough command

text:
# nvme_io_passthru64(2)

## NAME
nvme_io_passthru64 - Submit an nvme io passthrough command

## SYNOPSIS
int nvme_io_passthru64 (int fd , __u8 opcode , __u8 flags , __u16 rsvd , __u32 nsid , __u32 cdw2 , __u32 cdw3 , __u32 cdw10 , __u32 cdw11 , __u32 cdw12 , __u32 cdw13 , __u32 cdw14 , __u32 cdw15 , __u32 data_len , void *data , __u32 metadata_len , void *metadata , __u32 timeout_ms , __u64 *result );

## ARGUMENTS
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

## DESCRIPTION
Parameterized form of nvme_submit_io_passthru64. This sets up and submits a struct nvme_passthru_cmd64.

Known values for opcode are defined in enum nvme_io_opcode.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_is_64bit_reg(2)

text:
# nvme_is_64bit_reg(2)

## NAME
nvme_is_64bit_reg - Checks if offset of the controller register is a know 64bit value.

## SYNOPSIS
bool nvme_is_64bit_reg (__u32 offset );

## ARGUMENTS
offset

Offset of controller register field in bytes

## DESCRIPTION
This function does not care about transport so that the offset is not going to be checked inside of this function for the unsupported fields in a specific transport. For example, BPMBL(Boot Partition Memory Buffer Location) register is not supported by fabrics, but it can be checked here.

## RETURN
true if given offset is 64bit register, otherwise it returns false.


title: nvme_kv_opcode(2)

summary: Opcodes for KV Commands

text:
# nvme_kv_opcode(2)

## NAME
enum nvme_kv_opcode - Opcodes for KV Commands

## SYNOPSIS
enum nvme_kv_opcode {

nvme_kv_cmd_flush ,

nvme_kv_cmd_store ,

nvme_kv_cmd_retrieve ,

nvme_kv_cmd_list ,

nvme_kv_cmd_resv_register ,

nvme_kv_cmd_resv_report ,

nvme_kv_cmd_delete ,

nvme_kv_cmd_resv_acquire ,

nvme_kv_cmd_exist ,

nvme_kv_cmd_resv_release

};

## Constants
nvme_kv_cmd_flush

Flush

nvme_kv_cmd_store

Store

nvme_kv_cmd_retrieve

Retrieve

nvme_kv_cmd_list

List

nvme_kv_cmd_resv_register

Reservation Register

nvme_kv_cmd_resv_report

Reservation Report

nvme_kv_cmd_delete

Delete

nvme_kv_cmd_resv_acquire

Reservation Acquire

nvme_kv_cmd_exist

Exist

nvme_kv_cmd_resv_release

Reservation Release


title: nvme_lba_range_type(2)

summary: LBA Range Type

text:
# nvme_lba_range_type(2)

## NAME
struct nvme_lba_range_type - LBA Range Type

## SYNOPSIS
struct nvme_lba_range_type {

struct nvme_lba_range_type_entry entry[NVME_FEAT_LBA_RANGE_MAX];

};

## Members
entry

LBA range type entry. See struct nvme_lba_range_type_entry


title: nvme_lba_range_type_entry(2)

summary: LBA Range Type - Data Structure Entry

text:
# nvme_lba_range_type_entry(2)

## NAME
struct nvme_lba_range_type_entry - LBA Range Type - Data Structure Entry

## SYNOPSIS
struct nvme_lba_range_type_entry {

__u8 type;

__u8 attributes;

__u8 rsvd2[14];

__le64 slba;

__le64 nlb;

__u8 guid[16];

__u8 rsvd48[16];

};

## Members
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


title: nvme_lba_rd(2)

summary: LBA Range Descriptor

text:
# nvme_lba_rd(2)

## NAME
struct nvme_lba_rd - LBA Range Descriptor

## SYNOPSIS
struct nvme_lba_rd {

__le64 rslba;

__le32 rnlb;

__u8 rsvd12[4];

};

## Members
rslba

Range Starting LBA

rnlb

Range Number of Logical Blocks

rsvd12

Reserved


title: nvme_lba_status(2)

summary: LBA Status Descriptor List

text:
# nvme_lba_status(2)

## NAME
struct nvme_lba_status - LBA Status Descriptor List

## SYNOPSIS
struct nvme_lba_status {

__le32 nlsd;

__u8 cmpc;

__u8 rsvd5[3];

struct nvme_lba_status_desc descs[];

};

## Members
nlsd

Number of LBA Status Descriptors

cmpc

Completion Condition

rsvd5

Reserved

descs

LBA status descriptor Entry


title: nvme_lba_status_atype(2)

text:
# nvme_lba_status_atype(2)

## NAME
enum nvme_lba_status_atype - Action type the controller uses to return LBA status

## SYNOPSIS
enum nvme_lba_status_atype {

NVME_LBA_STATUS_ATYPE_ALLOCATED ,

NVME_LBA_STATUS_ATYPE_SCAN_UNTRACKED ,

NVME_LBA_STATUS_ATYPE_TRACKED

};

## Constants
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


title: nvme_lba_status_cmpc(2)

text:
# nvme_lba_status_cmpc(2)

## NAME
enum nvme_lba_status_cmpc - Get LBA Status Command Completion Condition

## SYNOPSIS
enum nvme_lba_status_cmpc {

NVME_LBA_STATUS_CMPC_NO_CMPC ,

NVME_LBA_STATUS_CMPC_INCOMPLETE ,

NVME_LBA_STATUS_CMPC_COMPLETE

};

## Constants
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


title: nvme_lba_status_desc(2)

summary: LBA Status Descriptor Entry

text:
# nvme_lba_status_desc(2)

## NAME
struct nvme_lba_status_desc - LBA Status Descriptor Entry

## SYNOPSIS
struct nvme_lba_status_desc {

__le64 dslba;

__le32 nlb;

__u8 rsvd12;

__u8 status;

__u8 rsvd14[2];

};

## Members
dslba

Descriptor Starting LBA

nlb

Number of Logical Blocks

rsvd12

Reserved

status

Additional status about this LBA range

rsvd14

Reserved


title: nvme_lba_status_log(2)

summary: LBA Status Information Log

text:
# nvme_lba_status_log(2)

## NAME
struct nvme_lba_status_log - LBA Status Information Log

## SYNOPSIS
struct nvme_lba_status_log {

__le32 lslplen;

__le32 nlslne;

__le32 estulb;

__u8 rsvd12[2];

__le16 lsgc;

struct nvme_lbas_ns_element elements[];

};

## Members
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


title: nvme_lbaf(2)

summary: LBA Format Data Structure

text:
# nvme_lbaf(2)

## NAME
struct nvme_lbaf - LBA Format Data Structure

## SYNOPSIS
struct nvme_lbaf {

__le16 ms;

__u8 ds;

__u8 rp;

};

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


title: nvme_lbaf_rp(2)

text:
# nvme_lbaf_rp(2)

## NAME
enum nvme_lbaf_rp - This field indicates the relative performance of the LBA format indicated relative to other LBA formats supported by the controller.

## SYNOPSIS
enum nvme_lbaf_rp {

NVME_LBAF_RP_BEST ,

NVME_LBAF_RP_BETTER ,

NVME_LBAF_RP_GOOD ,

NVME_LBAF_RP_DEGRADED ,

NVME_LBAF_RP_MASK

};

## Constants
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


title: nvme_lbart(2)

summary: LBA Range Type - Data Structure Entry

text:
# nvme_lbart(2)

## NAME
enum nvme_lbart - LBA Range Type - Data Structure Entry

## SYNOPSIS
enum nvme_lbart {

NVME_LBART_TYPE_GP ,

NVME_LBART_TYPE_FS ,

NVME_LBART_TYPE_RAID ,

NVME_LBART_TYPE_CACHE ,

NVME_LBART_TYPE_SWAP ,

NVME_LBART_ATTRIB_TEMP ,

NVME_LBART_ATTRIB_HIDE

};

## Constants
NVME_LBART_TYPE_GP

General Purpose

NVME_LBART_TYPE_FS

Filesystem

NVME_LBART_TYPE_RAID

RAID

NVME_LBART_TYPE_CACHE

Cache

NVME_LBART_TYPE_SWAP

Page / swap file

NVME_LBART_ATTRIB_TEMP

Temp

NVME_LBART_ATTRIB_HIDE

Hidden


title: nvme_lbas_ns_element(2)

summary: LBA Status Log Namespace Element

text:
# nvme_lbas_ns_element(2)

## NAME
struct nvme_lbas_ns_element - LBA Status Log Namespace Element

## SYNOPSIS
struct nvme_lbas_ns_element {

__le32 neid;

__le32 nlrd;

__u8 ratype;

__u8 rsvd8[7];

struct nvme_lba_rd lba_rd[];

};

## Members
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


title: nvme_lm_cdq(2)

text:
# nvme_lm_cdq(2)

## NAME
nvme_lm_cdq - Controller Data Queue - Controller Data Queue command

## SYNOPSIS
int nvme_lm_cdq (struct nvme_lm_cdq_args *args );

## ARGUMENTS
args

struct nvme_lm_cdq_args argument structure

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.)


title: nvme_lm_cdq_fields(2)

summary: Controller Data Queue command fields

text:
# nvme_lm_cdq_fields(2)

## NAME
enum nvme_lm_cdq_fields - Controller Data Queue command fields

## SYNOPSIS
enum nvme_lm_cdq_fields {

NVME_LM_CDQ_MOS_SHIFT ,

NVME_LM_CDQ_MOS_MASK ,

NVME_LM_CDQ_SEL_SHIFT ,

NVME_LM_CDQ_SEL_MASK ,

NVME_LM_SEL_CREATE_CDQ ,

NVME_LM_SEL_DELETE_CDQ ,

NVME_LM_QT_SHIFT ,

NVME_LM_QT_MASK ,

NVME_LM_CQS_SHIFT ,

NVME_LM_CQS_MASK ,

NVME_LM_QT_USER_DATA_MIGRATION_QUEUE ,

NVME_LM_CREATE_CDQ_PC ,

NVME_LM_CREATE_CDQ_CNTLID_SHIFT ,

NVME_LM_CREATE_CDQ_CNTLID_MASK ,

NVME_LM_DELETE_CDQ_CDQID_SHIFT ,

NVME_LM_DELETE_CDQ_CDQID_MASK ,

NVME_LM_CREATE_CDQ_CDQID_SHIFT ,

NVME_LM_CREATE_CDQ_CDQID_MASK

};

## Constants
NVME_LM_CDQ_MOS_SHIFT

Shift to set Management Operation Specific (MOS) field

NVME_LM_CDQ_MOS_MASK

Mask to set MOS field

NVME_LM_CDQ_SEL_SHIFT

Shift to set Select (SEL) field

NVME_LM_CDQ_SEL_MASK

Mask to set SEL field

NVME_LM_SEL_CREATE_CDQ

Create CDQ select option

NVME_LM_SEL_DELETE_CDQ

Delete CDQ select option

NVME_LM_QT_SHIFT

Shift amount to set Queue Type (QT) field relative to MOS

NVME_LM_QT_MASK

Mask to set QT field relative to MOS

NVME_LM_CQS_SHIFT

Shift amount for Create Queue Specific (CQS) field

NVME_LM_CQS_MASK

Mask to set CQS field

NVME_LM_QT_USER_DATA_MIGRATION_QUEUE

User Data Migration Queue type

NVME_LM_CREATE_CDQ_PC

Physically Contiguous (PC)

NVME_LM_CREATE_CDQ_CNTLID_SHIFT

Shift amount to set CNTLID field relative to MOS

NVME_LM_CREATE_CDQ_CNTLID_MASK

Mask to set CNTLID field relative to MOS

NVME_LM_DELETE_CDQ_CDQID_SHIFT

Shift amount to set CDQID field for deletion

NVME_LM_DELETE_CDQ_CDQID_MASK

Mask to set CDQID field for deletion

NVME_LM_CREATE_CDQ_CDQID_SHIFT

Shift amount to get CDQID field from Create response in completion dword0

NVME_LM_CREATE_CDQ_CDQID_MASK

Mask to get CNTLID field from Create response in completion dword0


title: nvme_lm_controller_state_data(2)

text:
# nvme_lm_controller_state_data(2)

## NAME
struct nvme_lm_controller_state_data - Controller State data structure contains data on the controller's state.

## SYNOPSIS
struct nvme_lm_controller_state_data {

struct nvme_lm_controller_state_data_header hdr;

struct nvme_lm_nvme_controller_state_data data;

};

## Members
hdr

Header

data

Data


title: nvme_lm_controller_state_data_header(2)

text:
# nvme_lm_controller_state_data_header(2)

## NAME
struct nvme_lm_controller_state_data_header - Controller State data header structure describes the contents of the Controller State data

## SYNOPSIS
struct nvme_lm_controller_state_data_header {

__le16 ver;

__u8 csattr;

__u8 rsvd3[13];

__u8 nvmecss[16];

__u8 vss[16];

};

## Members
ver

Version of this data structure

csattr

Controller state attributes

rsvd3

Reserved

nvmecss

NVMe Controller state size in dwords

vss

Vendor specific size in dowrds


title: nvme_lm_ctrl_data_queue_fid(2)

summary: Controller Data Queue - Set Feature

text:
# nvme_lm_ctrl_data_queue_fid(2)

## NAME
enum nvme_lm_ctrl_data_queue_fid - Controller Data Queue - Set Feature

## SYNOPSIS
enum nvme_lm_ctrl_data_queue_fid {

NVME_LM_CTRL_DATA_QUEUE_ETPT_MASK ,

NVME_LM_CTRL_DATA_QUEUE_ETPT_SHIFT

};

## Constants
NVME_LM_CTRL_DATA_QUEUE_ETPT_MASK

Mask to set Enable Tail Pointer Trigger (ETPT)

NVME_LM_CTRL_DATA_QUEUE_ETPT_SHIFT

Shift to set ETPT


title: nvme_lm_ctrl_data_queue_fid_data(2)

summary: Get Controller Data Queue feature data

text:
# nvme_lm_ctrl_data_queue_fid_data(2)

## NAME
struct nvme_lm_ctrl_data_queue_fid_data - Get Controller Data Queue feature data

## SYNOPSIS
struct nvme_lm_ctrl_data_queue_fid_data {

__le32 hp;

__le32 tpt;

};

## Members
hp

Head Pointer

tpt

Tail Pointer Trigger


title: nvme_lm_io_completion_queue_data(2)

text:
# nvme_lm_io_completion_queue_data(2)

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

## SYNOPSIS
struct nvme_lm_io_completion_queue_data {

__le64 iocqprp1;

__le16 iocqqsize;

__le16 iocqqid;

__le16 iocqhp;

__le16 iocqtp;

__le32 iocqa;

__u8 rsvd20[4];

};

## Members
iocqprp1

I/O Completion Queue PRP Entry 1 (IOCQPRP1)

iocqqsize

I/O Completion Queue Size (IOCQQSIZE)

iocqqid

I/O Completion Queue Identifier (IOCQQID)

iocqhp

I/O Completion Queue Head Pointer (IOCQHP)

iocqtp

I/O Completion Queue Tail Pointer (IOCQTP)

iocqa

I/O Completion Queue Attributes (IOCQA)

rsvd20

Reserved


title: nvme_lm_io_submission_queue_data(2)

text:
# nvme_lm_io_submission_queue_data(2)

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

## SYNOPSIS
struct nvme_lm_io_submission_queue_data {

__le64 iosqprp1;

__le16 iosqqsize;

__le16 iosqqid;

__le16 iosqcqid;

__le16 iosqa;

__le16 iosqhp;

__le16 iosqtp;

__u8 rsvd20[4];

};

## Members
iosqprp1

I/O Submission PRP Entry 1 (IOSQPRP1)

iosqqsize

I/O Submission Queue Size (IOSQQSIZE)

iosqqid

I/O Submission Queue Identifier (IOSQQID)

iosqcqid

I/O Completion Queue Identifier (IOSQCQID)

iosqa

I/O Submission Queue Attributes (IOSQA)

iosqhp

I/O Submission Queue Head Pointer (IOSQHP)

iosqtp

I/O Submission Queue Tail Pointer (IOSQTP)

rsvd20

Reserved


title: nvme_lm_migration_recv_fields(2)

summary: Migration Receive command fields

text:
# nvme_lm_migration_recv_fields(2)

## NAME
enum nvme_lm_migration_recv_fields - Migration Receive command fields

## SYNOPSIS
enum nvme_lm_migration_recv_fields {

NVME_LM_MIGRATION_RECV_MOS_SHIFT ,

NVME_LM_MIGRATION_RECV_MOS_MASK ,

NVME_LM_MIGRATION_RECV_SEL_SHIFT ,

NVME_LM_MIGRATION_RECV_SEL_MASK ,

NVME_LM_SEL_GET_CONTROLLER_STATE ,

NVME_LM_MIGRATION_RECV_UIDX_SHIFT ,

NVME_LM_MIGRATION_RECV_UIDX_MASK ,

NVME_LM_GET_CONTROLLER_STATE_CSVI_SHIFT ,

NVME_LM_GET_CONTROLLER_STATE_CSVI_MASK ,

NVME_LM_GET_CONTROLLER_STATE_CSUIDXP_SHIFT ,

NVME_LM_GET_CONTROLLER_STATE_CSUIDXP_MASK ,

NVME_LM_GET_CONTROLLER_STATE_CSUUIDI_SHIFT ,

NVME_LM_GET_CONTROLLER_STATE_CSUUIDI_MASK ,

NVME_LM_GET_CONTROLLER_STATE_CNTLID_SHIFT ,

NVME_LM_GET_CONTROLLER_STATE_CNTLID_MASK ,

NVME_LM_GET_CONTROLLER_STATE_CSUP

};

## Constants
NVME_LM_MIGRATION_RECV_MOS_SHIFT

Shift amount to set Management Specific Operation (MOS) field

NVME_LM_MIGRATION_RECV_MOS_MASK

Mask to set MOS field

NVME_LM_MIGRATION_RECV_SEL_SHIFT

Shift amount to set Select (SEL) field

NVME_LM_MIGRATION_RECV_SEL_MASK

Mask to set SEL field

NVME_LM_SEL_GET_CONTROLLER_STATE

Get Controller State select option

NVME_LM_MIGRATION_RECV_UIDX_SHIFT

Shift to set UUID Index (UIDX)

NVME_LM_MIGRATION_RECV_UIDX_MASK

Mask to set UIDX

NVME_LM_GET_CONTROLLER_STATE_CSVI_SHIFT

Shift amount to set Controller State Version Index (CSVI) relative to MOS

NVME_LM_GET_CONTROLLER_STATE_CSVI_MASK

Mask to set CSVI relative to MOS

NVME_LM_GET_CONTROLLER_STATE_CSUIDXP_SHIFT

Shift amount to set Controller State UUID Index Parameter (CSUIDXP)

NVME_LM_GET_CONTROLLER_STATE_CSUIDXP_MASK

Mask to set CSUIDXP

NVME_LM_GET_CONTROLLER_STATE_CSUUIDI_SHIFT

Shift amount to set Controller State UUID Index (CSUUIDI)

NVME_LM_GET_CONTROLLER_STATE_CSUUIDI_MASK

Mask to set CSUUIDI

NVME_LM_GET_CONTROLLER_STATE_CNTLID_SHIFT

Shift amount to set Controller ID (CNTLID)

NVME_LM_GET_CONTROLLER_STATE_CNTLID_MASK

Mask to set CNTLID

NVME_LM_GET_CONTROLLER_STATE_CSUP

Controller Suspended


title: nvme_lm_migration_send(2)

summary: Migration Send command

text:
# nvme_lm_migration_send(2)

## NAME
nvme_lm_migration_send - Migration Send command

## SYNOPSIS
int nvme_lm_migration_send (struct nvme_lm_migration_send_args *args );

## ARGUMENTS
args

struct nvme_lm_migration_send_args argument structure

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_lm_migration_send_fields(2)

summary: Migration Send command fields

text:
# nvme_lm_migration_send_fields(2)

## NAME
enum nvme_lm_migration_send_fields - Migration Send command fields

## SYNOPSIS
enum nvme_lm_migration_send_fields {

NVME_LM_MIGRATION_SEND_MOS_SHIFT ,

NVME_LM_MIGRATION_SEND_MOS_MASK ,

NVME_LM_MIGRATION_SEND_SEL_SHIFT ,

NVME_LM_MIGRATION_SEND_SEL_MASK ,

NVME_LM_SEL_SUSPEND ,

NVME_LM_SEL_RESUME ,

NVME_LM_SEL_SET_CONTROLLER_STATE ,

NVME_LM_MIGRATION_SEND_UIDX_SHIFT ,

NVME_LM_MIGRATION_SEND_UIDX_MASK ,

NVME_LM_DUDMQ ,

NVME_LM_STYPE_SHIFT ,

NVME_LM_STYPE_MASK ,

NVME_LM_STYPE_SUSPEND_NOTIFICATION ,

NVME_LM_STYPE_SUSPEND ,

NVME_LM_SUSPEND_CNTLID_SHIFT ,

NVME_LM_SUSPEND_CNTLID_MASK ,

NVME_LM_RESUME_CNTLID_SHIFT ,

NVME_LM_RESUME_CNTLID_MASK ,

NVME_LM_SEQIND_SHIFT ,

NVME_LM_SEQIND_MASK ,

NVME_LM_SEQIND_NOT_FIRST_NOT_LAST ,

NVME_LM_SEQIND_FIRST ,

NVME_LM_SEQIND_LAST ,

NVME_LM_SEQIND_ENTIRE ,

NVME_LM_SET_CONTROLLER_STATE_CSUUIDI_SHIFT ,

NVME_LM_SET_CONTROLLER_STATE_CSUUIDI_MASK ,

NVME_LM_SET_CONTROLLER_STATE_CSVI_SHIFT ,

NVME_LM_SET_CONTROLLER_STATE_CSVI_MASK ,

NVME_LM_SET_CONTROLLER_STATE_CNTLID_SHIFT ,

NVME_LM_SET_CONTROLLER_STATE_CNTLID_MASK

};

## Constants
NVME_LM_MIGRATION_SEND_MOS_SHIFT

Shift to set Management Operation Specific (MOS) field

NVME_LM_MIGRATION_SEND_MOS_MASK

Mask to set MOS field

NVME_LM_MIGRATION_SEND_SEL_SHIFT

Shift amount to set Select (SEL) field

NVME_LM_MIGRATION_SEND_SEL_MASK

Mask to set SEL field

NVME_LM_SEL_SUSPEND

Migration Send - Suspend

NVME_LM_SEL_RESUME

Migration Send - Resume

NVME_LM_SEL_SET_CONTROLLER_STATE

Migration Send - Set Controller State

NVME_LM_MIGRATION_SEND_UIDX_SHIFT

Shift to set UUID Index (UIDX)

NVME_LM_MIGRATION_SEND_UIDX_MASK

Mask to set UIDX

NVME_LM_DUDMQ

Delete User Data Migration Queue

NVME_LM_STYPE_SHIFT

Shift amount to set Suspend Type (STYPE)

NVME_LM_STYPE_MASK

Mask to set STYPE

NVME_LM_STYPE_SUSPEND_NOTIFICATION

Suspend Notification - The specified controller is going to be suspended in the future with a subsequent Migration Send command

NVME_LM_STYPE_SUSPEND

Suspend - Suspend the controller

NVME_LM_SUSPEND_CNTLID_SHIFT

Shift amount to set Controller ID (CNTLID) when SEL is Suspend

NVME_LM_SUSPEND_CNTLID_MASK

Mask to set CNTLID with SEL Suspend

NVME_LM_RESUME_CNTLID_SHIFT

Shift amount to set Controller ID (CNTLID) when SEL is Resume

NVME_LM_RESUME_CNTLID_MASK

Mask to set CNTLID when SEL is Resume

NVME_LM_SEQIND_SHIFT

Shift amount to set Sequence Indicator (SEQIND) field relative to MOS

NVME_LM_SEQIND_MASK

Mask to set SEQIND field relative to MOS

NVME_LM_SEQIND_NOT_FIRST_NOT_LAST

This command is not the first or last of a sequence of two or more Migration Send commands with this management operation used to transfer the controller state from host to controller

NVME_LM_SEQIND_FIRST

This command is the first of a sequence of two or more Migration Send commands

NVME_LM_SEQIND_LAST

This command is the last command of a sequence of two or more Migration Send commands

NVME_LM_SEQIND_ENTIRE

This Migration Send command is the only command and contains the entire controller state for this management operation

NVME_LM_SET_CONTROLLER_STATE_CSUUIDI_SHIFT

Shift amount to set Controller State UUID Index (CSUUIDI)

NVME_LM_SET_CONTROLLER_STATE_CSUUIDI_MASK

Mask to set CSUUIDI

NVME_LM_SET_CONTROLLER_STATE_CSVI_SHIFT

Shift amount to set Controller State Version Index (CSVI)

NVME_LM_SET_CONTROLLER_STATE_CSVI_MASK

Mask to set CSVI

NVME_LM_SET_CONTROLLER_STATE_CNTLID_SHIFT

Shift amount to set Controller ID (CNTLID) when SEL is Set Controller State

NVME_LM_SET_CONTROLLER_STATE_CNTLID_MASK

Mask to set CNTLID when SEL is Set Controller State


title: nvme_lm_nvme_controller_state_data(2)

text:
# nvme_lm_nvme_controller_state_data(2)

## NAME
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

## SYNOPSIS
struct nvme_lm_nvme_controller_state_data {

struct nvme_lm_nvme_controller_state_data_header hdr;

union {

struct nvme_lm_io_submission_queue_data sqs[0];

struct nvme_lm_io_completion_queue_data cqs[0];

};

};

## Members
hdr

Header

{unnamed_union}

anonymous

sqs

I/O Submission Queue list

cqs

I/O Completion Queue list


summary: Controller State data structure header

text:
# nvme_lm_nvme_controller_state_data_header(2)

## NAME
struct nvme_lm_nvme_controller_state_data_header - Controller State data structure header

## SYNOPSIS
struct nvme_lm_nvme_controller_state_data_header {

__le16 ver;

__le16 niosq;

__le16 niocq;

__le16 rsvd6;

};

## Members
ver

The version of this data structure.

niosq

The number of I/O Submission Queues contained in this data structure.

niocq

The number of I/O Completion Queues contained in this data structure.

rsvd6

Reserved


title: nvme_lm_queue_attributes(2)

text:
# nvme_lm_queue_attributes(2)

## NAME
enum nvme_lm_queue_attributes - I/O Submission and I/O Completion Queue Attributes

## SYNOPSIS
enum nvme_lm_queue_attributes {

NVME_LM_IOSQPC_MASK ,

NVME_LM_IOSQPC_SHIFT ,

NVME_LM_IOSQPRIO_MASK ,

NVME_LM_IOSQPRIO_SHIFT ,

NVME_LM_IOCQPC_MASK ,

NVME_LM_IOCQPC_SHIFT ,

NVME_LM_IOCQIEN_MASK ,

NVME_LM_IOCQIEN_SHIFT ,

NVME_LM_S0PT_MASK ,

NVME_LM_S0PT_SHIFT ,

NVME_LM_IOCQIV_MASK ,

NVME_LM_IOCQIV_SHIFT

};

## Constants
NVME_LM_IOSQPC_MASK

Mask to get the Physically Contiguous (PC) bit for this I/O submission queue.

NVME_LM_IOSQPC_SHIFT

Shift to get the PC bit for this I/O submission queue

NVME_LM_IOSQPRIO_MASK

Mask to get the Priority for this I/O submission queue.

NVME_LM_IOSQPRIO_SHIFT

Shift to get the Priority for this I/O submission queue.

NVME_LM_IOCQPC_MASK

Mask to get the Physicaly Contiguous (PC) bit for this I/O completion queue.

NVME_LM_IOCQPC_SHIFT

Shift to get the PC bit for this I/O completion queue.

NVME_LM_IOCQIEN_MASK

Mask to get the Interrupts Enabled bit for this I/O completion queue

NVME_LM_IOCQIEN_SHIFT

Shift to get the Interrupts Enabled bit for this I/O completion

NVME_LM_S0PT_MASK

Mask to get the value of the Phase Tag bit for Slot 0 of this I/O completion queue.

NVME_LM_S0PT_SHIFT

Shift to get the value of the Phase Tag bit for Slot 0 of this I/O completion queue.

NVME_LM_IOCQIV_MASK

Mask to get the Interrupt Vector (IV) for this I/O completion queue.

NVME_LM_IOCQIV_SHIFT

Shift to get the IV for this I/O completion queue.


title: nvme_lm_track_send(2)

summary: Track Send command

text:
# nvme_lm_track_send(2)

## NAME
nvme_lm_track_send - Track Send command

## SYNOPSIS
int nvme_lm_track_send (struct nvme_lm_track_send_args *args );

## ARGUMENTS
args

struct nvme_lm_track_send_args argument structure

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_lm_track_send_fields(2)

summary: Track Send command fields

text:
# nvme_lm_track_send_fields(2)

## NAME
enum nvme_lm_track_send_fields - Track Send command fields

## SYNOPSIS
enum nvme_lm_track_send_fields {

NVME_LM_TRACK_SEND_MOS_SHIFT ,

NVME_LM_TRACK_SEND_MOS_MASK ,

NVME_LM_TRACK_SEND_SEL_SHIFT ,

NVME_LM_TRACK_SEND_SEL_MASK ,

NVME_LM_SEL_LOG_USER_DATA_CHANGES ,

NVME_LM_SEL_TRACK_MEMORY_CHANGES ,

NVME_LM_LACT_SHIFT ,

NVME_LM_LACT_MASK ,

NVME_LM_LACT_STOP_LOGGING ,

NVME_LM_LACT_START_LOGGING

};

## Constants
NVME_LM_TRACK_SEND_MOS_SHIFT

Shift to set Management Operation Specific (MOS) field

NVME_LM_TRACK_SEND_MOS_MASK

Mask to set MOS field

NVME_LM_TRACK_SEND_SEL_SHIFT

Shift to set Select (SEL) field

NVME_LM_TRACK_SEND_SEL_MASK

Mask to set SEL field

NVME_LM_SEL_LOG_USER_DATA_CHANGES

Log User Data Changes select option

NVME_LM_SEL_TRACK_MEMORY_CHANGES

Track Memory Changes select option

NVME_LM_LACT_SHIFT

Shift to set Logging Action (LACT) relative to MOS

NVME_LM_LACT_MASK

Mask to set LACT relative to MOS

NVME_LM_LACT_STOP_LOGGING

The controller shall stop logging user data changes to namespaces attached to the controller associated with the User Data Migration Queue specified in the CDQ ID.

NVME_LM_LACT_START_LOGGING

The controller shall start logging user data changes to namespaces attached to the controller associated with the User Data Migration Queue into that User Data Migration Queue where those user data changes are caused by the controller associated with that User Data Migration Queue processing commands.


title: nvme_lockdown(2)

summary: Issue lockdown command

text:
# nvme_lockdown(2)

## NAME
nvme_lockdown - Issue lockdown command

## SYNOPSIS
int nvme_lockdown (struct nvme_lockdown_args *args );

## ARGUMENTS
args

struct nvme_lockdown_args argument structure

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_lockdown_log(2)

summary: Command and Feature Lockdown Log

text:
# nvme_lockdown_log(2)

## NAME
struct nvme_lockdown_log - Command and Feature Lockdown Log

## SYNOPSIS
struct nvme_lockdown_log {

__u8 cfila;

__u8 rsvd1[2];

__u8 lngth;

__u8 cfil[508];

};

## Members
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


title: nvme_lockdown_log_contents(2)

summary: lockdown log page content attributes

text:
# nvme_lockdown_log_contents(2)

## NAME
enum nvme_lockdown_log_contents - lockdown log page content attributes

## SYNOPSIS
enum nvme_lockdown_log_contents {

NVME_LOCKDOWN_SUPPORTED_CMD ,

NVME_LOCKDOWN_PROHIBITED_CMD ,

NVME_LOCKDOWN_PROHIBITED_OUTOFBAND_CMD

};

## Constants
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


title: nvme_lockdown_log_scope(2)

summary: lockdown log page scope attributes

text:
# nvme_lockdown_log_scope(2)

## NAME
enum nvme_lockdown_log_scope - lockdown log page scope attributes

## SYNOPSIS
enum nvme_lockdown_log_scope {

NVME_LOCKDOWN_ADMIN_CMD ,

NVME_LOCKDOWN_FEATURE_ID ,

NVME_LOCKDOWN_MI_CMD_SET ,

NVME_LOCKDOWN_PCI_CMD_SET

};

## Constants
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


title: nvme_lockdown_scope_contents(2)

summary: Lockdown Log shift and mask

text:
# nvme_lockdown_scope_contents(2)

## NAME
enum nvme_lockdown_scope_contents - Lockdown Log shift and mask

## SYNOPSIS
enum nvme_lockdown_scope_contents {

NVME_LOCKDOWN_SS_SHIFT ,

NVME_LOCKDOWN_SS_MASK ,

NVME_LOCKDOWN_CS_SHIFT ,

NVME_LOCKDOWN_CS_MASK

};

## Constants
NVME_LOCKDOWN_SS_SHIFT

Lockdown log scope select Shift

NVME_LOCKDOWN_SS_MASK

Lockdown log scope select Mask

NVME_LOCKDOWN_CS_SHIFT

Lockdown log contents Shift

NVME_LOCKDOWN_CS_MASK

Lockdown log contents Mask


title: nvme_log_ana_lsp(2)

text:
# nvme_log_ana_lsp(2)

## NAME
enum nvme_log_ana_lsp - Asymmetric Namespace Access - Return Groups Only

## SYNOPSIS
enum nvme_log_ana_lsp {

NVME_LOG_ANA_LSP_RGO_NAMESPACES ,

NVME_LOG_ANA_LSP_RGO_GROUPS_ONLY

};

## Constants
NVME_LOG_ANA_LSP_RGO_NAMESPACES

NVME_LOG_ANA_LSP_RGO_GROUPS_ONLY


title: nvme_log_phy_rx_eom_action(2)

text:
# nvme_log_phy_rx_eom_action(2)

## NAME
enum nvme_log_phy_rx_eom_action - Physical Interface Receiver Eye Opening Measurement Action

## SYNOPSIS
enum nvme_log_phy_rx_eom_action {

NVME_LOG_PHY_RX_EOM_READ ,

NVME_LOG_PHY_RX_EOM_START_READ ,

NVME_LOG_PHY_RX_EOM_ABORT_CLEAR

};

## Constants
NVME_LOG_PHY_RX_EOM_READ

Read Log Data

NVME_LOG_PHY_RX_EOM_START_READ

Start Measurement and Read Log Data

NVME_LOG_PHY_RX_EOM_ABORT_CLEAR

Abort Measurement and Clear Log Data


title: nvme_log_phy_rx_eom_quality(2)

text:
# nvme_log_phy_rx_eom_quality(2)

## NAME
enum nvme_log_phy_rx_eom_quality - Physical Interface Receiver Eye Opening Measurement Quality

## SYNOPSIS
enum nvme_log_phy_rx_eom_quality {

NVME_LOG_PHY_RX_EOM_GOOD ,

NVME_LOG_PHY_RX_EOM_BETTER ,

NVME_LOG_PHY_RX_EOM_BEST

};

## Constants
NVME_LOG_PHY_RX_EOM_GOOD

<= Better Quality

NVME_LOG_PHY_RX_EOM_BETTER

<= Best Quality, >= Good Quality

NVME_LOG_PHY_RX_EOM_BEST

>= Better Quality


title: nvme_lookup_ctrl(2)

summary: Lookup nvme_ctrl_t object

text:
# nvme_lookup_ctrl(2)

## NAME
nvme_lookup_ctrl - Lookup nvme_ctrl_t object

## SYNOPSIS
nvme_ctrl_t nvme_lookup_ctrl (nvme_subsystem_t s , const char *transport , const char *traddr , const char *host_traddr , const char *host_iface , const char *trsvcid , nvme_ctrl_t p );

## ARGUMENTS
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

## DESCRIPTION
Lookup a controller in s based on transport, traddr, host_traddr, host_iface, and trsvcid. transport must be specified, other fields may be required depending on the transport. A new object is created if none is found. If p is specified the lookup will start at p instead of the first controller.

## RETURN
Controller instance


title: nvme_lookup_host(2)

summary: Lookup nvme_host_t object

text:
# nvme_lookup_host(2)

## NAME
nvme_lookup_host - Lookup nvme_host_t object

## SYNOPSIS
nvme_host_t nvme_lookup_host (nvme_root_t r , const char *hostnqn , const char *hostid );

## ARGUMENTS
r

nvme_root_t object

hostnqn

Host NQN

hostid

Host ID

## DESCRIPTION
Lookup a nvme_host_t object based on hostnqn and hostid or create one if not found.

## RETURN
nvme_host_t object


title: nvme_lookup_key(2)

summary: Lookup key serial number

text:
# nvme_lookup_key(2)

## NAME
nvme_lookup_key - Lookup key serial number

## SYNOPSIS
long nvme_lookup_key (const char *type , const char *identity );

## ARGUMENTS
type

Key type

identity

Key description

## DESCRIPTION
Looks up the serial number of the key identity with type type in the current session keyring.

## RETURN
The key serial number of the key or 0 with errno set otherwise.


title: nvme_lookup_keyring(2)

summary: Lookup keyring serial number

text:
# nvme_lookup_keyring(2)

## NAME
nvme_lookup_keyring - Lookup keyring serial number

## SYNOPSIS
long nvme_lookup_keyring (const char *keyring );

## ARGUMENTS
keyring

Keyring name

## DESCRIPTION
Looks up the serial number of the keyring keyring.

## RETURN
The key serial number of the keyring or 0 with errno set otherwise.


title: nvme_lookup_subsystem(2)

summary: Lookup nvme_subsystem_t object

text:
# nvme_lookup_subsystem(2)

## NAME
nvme_lookup_subsystem - Lookup nvme_subsystem_t object

## SYNOPSIS
nvme_subsystem_t nvme_lookup_subsystem (struct nvme_host *h , const char *name , const char *subsysnqn );

## ARGUMENTS
h

nvme_host_t object

name

Name of the subsystem (may be NULL)

subsysnqn

Subsystem NQN

## DESCRIPTION
Lookup a nvme_subsystem_t object in h base on name (if present) and subsysnqn or create one if not found.

## RETURN
nvme_subsystem_t object


title: nvme_media_unit_config_desc(2)

summary: Media Unit Configuration Descriptor

text:
# nvme_media_unit_config_desc(2)

## NAME
struct nvme_media_unit_config_desc - Media Unit Configuration Descriptor

## SYNOPSIS
struct nvme_media_unit_config_desc {

__le16 muid;

__u8 rsvd2[4];

__le16 mudl;

};

## Members
muid

Media Unit Identifier

rsvd2

Reserved

mudl

Media Unit Descriptor Length


title: nvme_media_unit_stat_desc(2)

summary: Media Unit Status Descriptor

text:
# nvme_media_unit_stat_desc(2)

## NAME
struct nvme_media_unit_stat_desc - Media Unit Status Descriptor

## SYNOPSIS
struct nvme_media_unit_stat_desc {

__le16 muid;

__le16 domainid;

__le16 endgid;

__le16 nvmsetid;

__le16 cap_adj_fctr;

__u8 avl_spare;

__u8 percent_used;

__u8 mucs;

__u8 cio;

};

## Members
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


title: nvme_media_unit_stat_log(2)

summary: Media Unit Status

text:
# nvme_media_unit_stat_log(2)

## NAME
struct nvme_media_unit_stat_log - Media Unit Status

## SYNOPSIS
struct nvme_media_unit_stat_log {

__le16 nmu;

__le16 cchans;

__le16 sel_config;

__u8 rsvd6[10];

struct nvme_media_unit_stat_desc mus_desc[];

};

## Members
nmu

Number unit status descriptor

cchans

Number of Channels

sel_config

Selected Configuration

rsvd6

Reserved

mus_desc

Media unit statistic descriptors


title: nvme_metadata_element_desc(2)

summary: Metadata Element Descriptor

text:
# nvme_metadata_element_desc(2)

## NAME
struct nvme_metadata_element_desc - Metadata Element Descriptor

## SYNOPSIS
struct nvme_metadata_element_desc {

__u8 type;

__u8 rev;

__le16 len;

__u8 val[0];

};

## Members
type

Element Type (ET)

rev

Element Revision (ER)

len

Element Length (ELEN)

val

Element Value (EVAL), UTF-8 string


title: nvme_mgmt_addr_desc(2)

summary: Management Address Descriptor

text:
# nvme_mgmt_addr_desc(2)

## NAME
struct nvme_mgmt_addr_desc - Management Address Descriptor

## SYNOPSIS
struct nvme_mgmt_addr_desc {

__u8 mat;

__u8 rsvd1[3];

__u8 madrs[508];

};

## Members
mat

Management Address Type

rsvd1

Reserved

madrs

Management Address


title: nvme_mgmt_addr_list_log(2)

summary: Management Address List Log

text:
# nvme_mgmt_addr_list_log(2)

## NAME
struct nvme_mgmt_addr_list_log - Management Address List Log

## SYNOPSIS
struct nvme_mgmt_addr_list_log {

struct nvme_mgmt_addr_desc mad[8];

};

## Members
mad

Management Address Descriptor


title: nvme_mi_admin_admin_passthru(2)

text:
# nvme_mi_admin_admin_passthru(2)

## NAME
nvme_mi_admin_admin_passthru - Submit an nvme admin passthrough command

## SYNOPSIS
int nvme_mi_admin_admin_passthru (nvme_mi_ctrl_t ctrl , __u8 opcode , __u8 flags , __u16 rsvd , __u32 nsid , __u32 cdw2 , __u32 cdw3 , __u32 cdw10 , __u32 cdw11 , __u32 cdw12 , __u32 cdw13 , __u32 cdw14 , __u32 cdw15 , __u32 data_len , void *data , __u32 metadata_len , void *metadata , __u32 timeout_ms , __u32 *result );

## ARGUMENTS
ctrl

Controller to send command to

opcode

The nvme admin 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(not used)

metadata

Pointer to user address of the metadata buffer(not used)

timeout_ms

How long to wait for the command to complete

result

Optional field to return the result from the CQE dword 0

## DESCRIPTION
Send a customized NVMe Admin command request message and get the corresponding response message.

This interface supports no data, host to controller and controller to host but it doesn't support bidirectional data transfer. Also this interface only supports data transfer size range [0, 4096] (bytes) so the & data_len parameter must be less than 4097.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_mi_admin_format_nvm(2)

summary: Format NVMe namespace

text:
# nvme_mi_admin_format_nvm(2)

## NAME
nvme_mi_admin_format_nvm - Format NVMe namespace

## SYNOPSIS
int nvme_mi_admin_format_nvm (nvme_mi_ctrl_t ctrl , struct nvme_format_nvm_args *args );

## ARGUMENTS
ctrl

Controller to send command to

args

Format NVM command arguments

## DESCRIPTION
Perform a low-level format to set the LBA data & metadata size. May destroy data & metadata on the specified namespaces

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_mi_admin_fw_commit(2)

text:
# nvme_mi_admin_fw_commit(2)

## NAME
nvme_mi_admin_fw_commit - Commit firmware using the specified action

## SYNOPSIS
int nvme_mi_admin_fw_commit (nvme_mi_ctrl_t ctrl , struct nvme_fw_commit_args *args );

## ARGUMENTS
ctrl

Controller to send firmware data to

args

struct nvme_fw_download_args argument structure

## DESCRIPTION
The Firmware Commit command modifies the firmware image or Boot Partitions.

## RETURN
0 on success, non-zero on failure


title: nvme_mi_admin_fw_download(2)

text:
# nvme_mi_admin_fw_download(2)

## NAME
nvme_mi_admin_fw_download - Download part or all of a firmware image to the controller

## SYNOPSIS
int nvme_mi_admin_fw_download (nvme_mi_ctrl_t ctrl , struct nvme_fw_download_args *args );

## ARGUMENTS
ctrl

Controller to send firmware data to

args

struct nvme_fw_download_args argument structure

## DESCRIPTION
The Firmware Image Download command downloads all or a portion of an image for a future update to the controller. The Firmware Image Download command downloads a new image (in whole or in part) to the controller.

The image may be constructed of multiple pieces that are individually downloaded with separate Firmware Image Download commands. Each Firmware Image Download command includes a Dword Offset and Number of Dwords that specify a dword range.

The new firmware image is not activated as part of the Firmware Image Download command. Use the nvme_mi_admin_fw_commit to activate a newly downloaded image.

## RETURN
0 on success, non-zero on failure


title: nvme_mi_admin_get_ana_log_atomic(2)

text:
# nvme_mi_admin_get_ana_log_atomic(2)

## NAME
nvme_mi_admin_get_ana_log_atomic - Retrieve Asymmetric Namespace Access log page atomically

## SYNOPSIS
int nvme_mi_admin_get_ana_log_atomic (nvme_mi_ctrl_t ctrl , bool rgo , bool rae , unsigned int retries , struct nvme_ana_log *log , __u32 *len );

## ARGUMENTS
ctrl

Controller to query

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.

## DESCRIPTION
See struct nvme_ana_log for the definition of the returned structure.

## RETURN
If successful, returns 0 and sets *len to the actual log page length. If unsuccessful, returns the nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise. Sets errno = EINVAL if retries == 0. Sets errno = EAGAIN if unable to read the log page atomically because chgcnt changed during each of the retries attempts. Sets errno = ENOSPC if the full log page does not fit in the provided buffer.


title: nvme_mi_admin_get_endgid_log(2)

text:
# nvme_mi_admin_get_endgid_log(2)

## NAME
nvme_mi_admin_get_endgid_log - Helper for Get Endurance Group ID Log Page functions

## SYNOPSIS
int nvme_mi_admin_get_endgid_log (nvme_mi_ctrl_t ctrl , bool rae , enum nvme_cmd_get_log_lid lid , __u16 endgid , __u32 len , void *log );

## ARGUMENTS
ctrl

Controller to query

rae

Retain Asynchronous Events

lid

Log identifier

endgid

Endurance Group ID

len

length of log buffer

log

pointer for resulting log data

## DESCRIPTION
Performs a Get Log Page Admin command for a specific log ID lid and endurance group ID endgid. Log data is expected to be len bytes, and is stored in log on success. The rae flag is passed as-is to the Get Log Page command, and is specific to the Log Page requested.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


summary: Get arbitration feature

text:
# nvme_mi_admin_get_features_arbitration(2)

## NAME
nvme_mi_admin_get_features_arbitration - Get arbitration feature

## SYNOPSIS
int nvme_mi_admin_get_features_arbitration (nvme_mi_ctrl_t ctrl , enum nvme_get_features_sel sel , __u32 *result );

## ARGUMENTS
ctrl

Controller to send command to

sel

Select which type of attribute to return, see enum nvme_get_features_sel

result

The feature data is returned in this argument

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_mi_admin_get_features_data(2)

text:
# nvme_mi_admin_get_features_data(2)

## NAME
nvme_mi_admin_get_features_data - Helper function for &nvme_mi_admin_get_features()

## SYNOPSIS
int nvme_mi_admin_get_features_data (nvme_mi_ctrl_t ctrl , enum nvme_features_id fid , __u32 nsid , __u32 data_len , void *data , __u32 *result );

## ARGUMENTS
ctrl

Controller to send command to

fid

Feature identifier

nsid

Namespace ID, if applicable for fid

data_len

Length of feature data, if applicable for fid, in bytes

data

User address of feature data, if applicable

result

The command completion result from CQE dword0

## DESCRIPTION
Helper for optionally features that optionally return data, using the SEL_CURRENT selector value.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


summary: Get power management feature

text:
# nvme_mi_admin_get_features_power_mgmt(2)

## NAME
nvme_mi_admin_get_features_power_mgmt - Get power management feature

## SYNOPSIS
int nvme_mi_admin_get_features_power_mgmt (nvme_mi_ctrl_t ctrl , enum nvme_get_features_sel sel , __u32 *result );

## ARGUMENTS
ctrl

Controller to send command to

sel

Select which type of attribute to return, see enum nvme_get_features_sel

result

The feature data is returned in this argument

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_mi_admin_get_log(2)

summary: Retrieve log page data from controller

text:
# nvme_mi_admin_get_log(2)

## NAME
nvme_mi_admin_get_log - Retrieve log page data from controller

## SYNOPSIS
int nvme_mi_admin_get_log (nvme_mi_ctrl_t ctrl , struct nvme_get_log_args *args );

## ARGUMENTS
ctrl

Controller to query

args

Get Log Page command arguments

## DESCRIPTION
Performs a Get Log Page Admin command as specified by args. Response data is stored in args->data, which should be a buffer of args->data_len bytes. Resulting data length is stored in args->data_len on successful command completion.

This request may be implemented as multiple log page commands, in order to fit within MI message-size limits.

See: struct nvme_get_log_args

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_mi_admin_get_log_ana(2)

text:
# nvme_mi_admin_get_log_ana(2)

## NAME
nvme_mi_admin_get_log_ana - Retrieve Asymmetric Namespace Access log page

## SYNOPSIS
int nvme_mi_admin_get_log_ana (nvme_mi_ctrl_t ctrl , enum nvme_log_ana_lsp lsp , bool rae , __u64 offset , __u32 len , void *log );

## ARGUMENTS
ctrl

Controller to query

lsp

Log specific, see enum nvme_get_log_ana_lsp

rae

Retain asynchronous events

offset

Offset to the start of the log page

len

The allocated length of the log page

log

User address to store the ana log

## DESCRIPTION
This log consists of a header describing the log and descriptors containing the asymmetric namespace access information for ANA Groups that contain namespaces that are attached to the controller processing the command.

See struct nvme_ana_log for the definition of the returned structure.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_mi_admin_get_log_ana_groups(2)

text:
# nvme_mi_admin_get_log_ana_groups(2)

## NAME
nvme_mi_admin_get_log_ana_groups - Retrieve Asymmetric Namespace Access groups only log page

## SYNOPSIS
int nvme_mi_admin_get_log_ana_groups (nvme_mi_ctrl_t ctrl , bool rae , __u32 len , struct nvme_ana_group_desc *log );

## ARGUMENTS
ctrl

Controller to query

rae

Retain asynchronous events

len

The allocated length of the log page

log

User address to store the ana group log

## DESCRIPTION
See struct nvme_ana_group_desc for the definition of the returned structure.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_mi_admin_get_log_ave_discover(2)

summary: Retrieve AVE Discovery Log

text:
# nvme_mi_admin_get_log_ave_discover(2)

## NAME
nvme_mi_admin_get_log_ave_discover - Retrieve AVE Discovery Log

## SYNOPSIS
int nvme_mi_admin_get_log_ave_discover (nvme_mi_ctrl_t ctrl , bool rae , __u32 len , struct nvme_ave_discover_log *log );

## ARGUMENTS
ctrl

Controller to query

rae

Retain asynchronous events

len

The allocated length of the log page

log

User address to store the log page

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise


title: nvme_mi_admin_get_log_boot_partition(2)

summary: Retrieve Boot Partition

text:
# nvme_mi_admin_get_log_boot_partition(2)

## NAME
nvme_mi_admin_get_log_boot_partition - Retrieve Boot Partition

## SYNOPSIS
int nvme_mi_admin_get_log_boot_partition (nvme_mi_ctrl_t ctrl , bool rae , __u8 lsp , __u32 len , struct nvme_boot_partition *part );

## ARGUMENTS
ctrl

Controller to query

rae

Retain asynchronous events

lsp

The log specified field of LID

len

The allocated size, minimum struct nvme_boot_partition

part

User address to store the log page

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


text:
# nvme_mi_admin_get_log_changed_alloc_ns_list(2)

## NAME
nvme_mi_admin_get_log_changed_alloc_ns_list - Retrieve Changed Allocated Namespace List Log

## SYNOPSIS
int nvme_mi_admin_get_log_changed_alloc_ns_list (nvme_mi_ctrl_t ctrl , bool rae , __u32 len , struct nvme_ns_list *log );

## ARGUMENTS
ctrl

Controller to query

rae

Retain asynchronous events

len

The allocated length of the log page

log

User address to store the log page

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise


summary: Retrieve namespace changed list

text:
# nvme_mi_admin_get_log_changed_ns_list(2)

## NAME
nvme_mi_admin_get_log_changed_ns_list - Retrieve namespace changed list

## SYNOPSIS
int nvme_mi_admin_get_log_changed_ns_list (nvme_mi_ctrl_t ctrl , bool rae , struct nvme_ns_list *ns_log );

## ARGUMENTS
ctrl

Controller to query

rae

Retain asynchronous events

ns_log

User address to store the log page

## DESCRIPTION
This log page describes namespaces attached to this controller that have changed since the last time the namespace was identified, been added, or deleted.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_mi_admin_get_log_cmd_effects(2)

summary: Retrieve nvme command effects log

text:
# nvme_mi_admin_get_log_cmd_effects(2)

## NAME
nvme_mi_admin_get_log_cmd_effects - Retrieve nvme command effects log

## SYNOPSIS
int nvme_mi_admin_get_log_cmd_effects (nvme_mi_ctrl_t ctrl , enum nvme_csi csi , struct nvme_cmd_effects_log *effects_log );

## ARGUMENTS
ctrl

Controller to query

csi

Command Set Identifier

effects_log

User address to store the effects log

## DESCRIPTION
This log page describes the commands that the controller supports and the effects of those commands on the state of the NVM subsystem.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


summary: Create host telemetry log

text:
# nvme_mi_admin_get_log_create_telemetry_host(2)

## NAME
nvme_mi_admin_get_log_create_telemetry_host - Create host telemetry log

## SYNOPSIS
int nvme_mi_admin_get_log_create_telemetry_host (nvme_mi_ctrl_t ctrl , struct nvme_telemetry_log *log );

## ARGUMENTS
ctrl

Controller to query

log

Userspace address of the log payload

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


summary: Create host telemetry log

text:
# nvme_mi_admin_get_log_create_telemetry_host_mcda(2)

## NAME
nvme_mi_admin_get_log_create_telemetry_host_mcda - Create host telemetry log

## SYNOPSIS
int nvme_mi_admin_get_log_create_telemetry_host_mcda (nvme_mi_ctrl_t ctrl , enum nvme_telemetry_da mcda , struct nvme_telemetry_log *log );

## ARGUMENTS
ctrl

Controller to query

mcda

Maximum Created Data Area

log

Userspace address of the log payload

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


summary: Retrieve the device self test log

text:
# nvme_mi_admin_get_log_device_self_test(2)

## NAME
nvme_mi_admin_get_log_device_self_test - Retrieve the device self test log

## SYNOPSIS
int nvme_mi_admin_get_log_device_self_test (nvme_mi_ctrl_t ctrl , struct nvme_self_test_log *log );

## ARGUMENTS
ctrl

Controller to query

log

Userspace address of the log payload

## DESCRIPTION
The log page indicates the status of an in progress self test and the percent complete of that operation, and the results of the previous 20 self-test operations.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_mi_admin_get_log_discovery(2)

summary: Retrieve Discovery log page

text:
# nvme_mi_admin_get_log_discovery(2)

## NAME
nvme_mi_admin_get_log_discovery - Retrieve Discovery log page

## SYNOPSIS
int nvme_mi_admin_get_log_discovery (nvme_mi_ctrl_t ctrl , bool rae , __u32 offset , __u32 len , void *log );

## ARGUMENTS
ctrl

Controller to query

rae

Retain asynchronous events

offset

Offset of this log to retrieve

len

The allocated size for this portion of the log

log

User address to store the discovery log

## DESCRIPTION
Supported only by fabrics discovery controllers, returning discovery records.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


text:
# nvme_mi_admin_get_log_dispersed_ns_participating_nss(2)

## NAME
nvme_mi_admin_get_log_dispersed_ns_participating_nss - Retrieve Dispersed Namespace Participating NVM Subsystems Log

## SYNOPSIS
int nvme_mi_admin_get_log_dispersed_ns_participating_nss (nvme_mi_ctrl_t ctrl , __u32 nsid , __u32 len , struct nvme_dispersed_ns_participating_nss_log *log );

## ARGUMENTS
ctrl

Controller to query

nsid

Namespace Identifier

len

The allocated length of the log page

log

User address to store the log page

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise


summary: Get Endurance Group log

text:
# nvme_mi_admin_get_log_endurance_group(2)

## NAME
nvme_mi_admin_get_log_endurance_group - Get Endurance Group log

## SYNOPSIS
int nvme_mi_admin_get_log_endurance_group (nvme_mi_ctrl_t ctrl , __u16 endgid , struct nvme_endurance_group_log *log );

## ARGUMENTS
ctrl

Controller to query

endgid

Starting group identifier to return in the list

log

User address to store the endurance log

## DESCRIPTION
This log page indicates if an Endurance Group Event has occurred for a particular Endurance Group. If an Endurance Group Event has occurred, the details of the particular event are included in the Endurance Group Information log page for that Endurance Group. An asynchronous event is generated when an entry for an Endurance Group is newly added to this log page.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


summary: Retrieve Rotational Media Information

text:
# nvme_mi_admin_get_log_endurance_grp_evt(2)

## NAME
nvme_mi_admin_get_log_endurance_grp_evt - Retrieve Rotational Media Information

## SYNOPSIS
int nvme_mi_admin_get_log_endurance_grp_evt (nvme_mi_ctrl_t ctrl , bool rae , __u32 offset , __u32 len , void *log );

## ARGUMENTS
ctrl

Controller to query

rae

Retain asynchronous events

offset

Offset to the start of the log page

len

The allocated length of the log page

log

User address to store the log page

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_mi_admin_get_log_error(2)

summary: Retrieve nvme error log

text:
# nvme_mi_admin_get_log_error(2)

## NAME
nvme_mi_admin_get_log_error - Retrieve nvme error log

## SYNOPSIS
int nvme_mi_admin_get_log_error (nvme_mi_ctrl_t ctrl , unsigned int nr_entries , bool rae , struct nvme_error_log_page *err_log );

## ARGUMENTS
ctrl

Controller to query

nr_entries

Number of error log entries allocated

rae

Retain asynchronous events

err_log

Array of error logs of size 'entries'

## DESCRIPTION
This log page describes extended error information for a command that completed with error, or may report an error that is not specific to a particular command.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


text:
# nvme_mi_admin_get_log_fid_supported_effects(2)

## NAME
nvme_mi_admin_get_log_fid_supported_effects - Retrieve Feature Identifiers Supported and Effects

## SYNOPSIS
int nvme_mi_admin_get_log_fid_supported_effects (nvme_mi_ctrl_t ctrl , bool rae , struct nvme_fid_supported_effects_log *log );

## ARGUMENTS
ctrl

Controller to query

rae

Retain asynchronous events

log

FID Supported and Effects data structure

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_mi_admin_get_log_fw_slot(2)

summary: Retrieves the controller firmware log

text:
# nvme_mi_admin_get_log_fw_slot(2)

## NAME
nvme_mi_admin_get_log_fw_slot - Retrieves the controller firmware log

## SYNOPSIS
int nvme_mi_admin_get_log_fw_slot (nvme_mi_ctrl_t ctrl , bool rae , struct nvme_firmware_slot *fw_log );

## ARGUMENTS
ctrl

Controller to query

rae

Retain asynchronous events

fw_log

User address to store the log page

## DESCRIPTION
This log page describes the firmware revision stored in each firmware slot supported. The firmware revision is indicated as an ASCII string. The log page also indicates the active slot number.

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_mi_admin_get_log_host_discover(2)

summary: Retrieve Host Discovery Log

text:
# nvme_mi_admin_get_log_host_discover(2)

## NAME
nvme_mi_admin_get_log_host_discover - Retrieve Host Discovery Log

## SYNOPSIS
int nvme_mi_admin_get_log_host_discover (nvme_mi_ctrl_t ctrl , bool allhoste , bool rae , __u32 len , struct nvme_host_discover_log *log );

## ARGUMENTS
ctrl

Controller to query

allhoste

All host entries

rae

Retain asynchronous events

len

The allocated length of the log page

log

User address to store the log page

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise


title: nvme_mi_admin_get_log_lba_status(2)

summary: Retrieve LBA Status

text:
# nvme_mi_admin_get_log_lba_status(2)

## NAME
nvme_mi_admin_get_log_lba_status - Retrieve LBA Status

## SYNOPSIS
int nvme_mi_admin_get_log_lba_status (nvme_mi_ctrl_t ctrl , bool rae , __u64 offset , __u32 len , void *log );

## ARGUMENTS
ctrl

Controller to query

rae

Retain asynchronous events

offset

Offset to the start of the log page

len

The allocated length of the log page

log

User address to store the log page

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_mi_admin_get_log_lockdown(2)

summary: Retrieve lockdown Log

text:
# nvme_mi_admin_get_log_lockdown(2)

## NAME
nvme_mi_admin_get_log_lockdown - Retrieve lockdown Log

## SYNOPSIS
int nvme_mi_admin_get_log_lockdown (nvme_mi_ctrl_t ctrl , __u8 cnscp , struct nvme_lockdown_log *lockdown_log );

## ARGUMENTS
ctrl

Controller to query

cnscp

Contents and Scope of Command and Feature Identifier Lists

lockdown_log

Buffer to store the lockdown log

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


summary: Retrieve Media Unit Status

text:
# nvme_mi_admin_get_log_media_unit_stat(2)

## NAME
nvme_mi_admin_get_log_media_unit_stat - Retrieve Media Unit Status

## SYNOPSIS
int nvme_mi_admin_get_log_media_unit_stat (nvme_mi_ctrl_t ctrl , __u16 domid , struct nvme_media_unit_stat_log *mus );

## ARGUMENTS
ctrl

Controller to query

domid

Domain Identifier selection, if supported

mus

User address to store the Media Unit statistics log

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_mi_admin_get_log_mgmt_addr_list(2)

summary: Retrieve Management Address List Log

text:
# nvme_mi_admin_get_log_mgmt_addr_list(2)

## NAME
nvme_mi_admin_get_log_mgmt_addr_list - Retrieve Management Address List Log

## SYNOPSIS
int nvme_mi_admin_get_log_mgmt_addr_list (nvme_mi_ctrl_t ctrl , __u32 len , struct nvme_mgmt_addr_list_log *log );

## ARGUMENTS
ctrl

Controller to query

len

The allocated length of the log page

log

User address to store the log page

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise


text:
# nvme_mi_admin_get_log_mi_cmd_supported_effects(2)

## NAME
nvme_mi_admin_get_log_mi_cmd_supported_effects - displays the MI Commands Supported by the controller

## SYNOPSIS
int nvme_mi_admin_get_log_mi_cmd_supported_effects (nvme_mi_ctrl_t ctrl , bool rae , struct nvme_mi_cmd_supported_effects_log *log );

## ARGUMENTS
ctrl

Controller to query

rae

Retain asynchronous events

log

MI Command Supported and Effects data structure

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_mi_admin_get_log_page(2)

summary: Retrieve log page data from controller

text:
# nvme_mi_admin_get_log_page(2)

## NAME
nvme_mi_admin_get_log_page - Retrieve log page data from controller

## SYNOPSIS
int nvme_mi_admin_get_log_page (nvme_mi_ctrl_t ctrl , __u32 xfer_len , struct nvme_get_log_args *args );

## ARGUMENTS
ctrl

Controller to query

xfer_len

The chunk size of the read

args

Get Log Page command arguments

## DESCRIPTION
Performs a Get Log Page Admin command as specified by args. Response data is stored in args->data, which should be a buffer of args->data_len bytes. Resulting data length is stored in args->data_len on successful command completion.

This request may be implemented as multiple log page commands, in order to fit within MI message-size limits.

See: struct nvme_get_log_args

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


summary: Retrieve Persistent Event Log

text:
# nvme_mi_admin_get_log_persistent_event(2)

## NAME
nvme_mi_admin_get_log_persistent_event - Retrieve Persistent Event Log

## SYNOPSIS
int nvme_mi_admin_get_log_persistent_event (nvme_mi_ctrl_t ctrl , enum nvme_pevent_log_action action , __u32 size , void *pevent_log );

## ARGUMENTS
ctrl

Controller to query

action

Action the controller should take during processing this command

size

Size of pevent_log

pevent_log

User address to store the persistent event log

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


title: nvme_mi_admin_get_log_phy_rx_eom(2)

text:
# nvme_mi_admin_get_log_phy_rx_eom(2)

## NAME
nvme_mi_admin_get_log_phy_rx_eom - Retrieve Physical Interface Receiver Eye Opening Measurement Log

## SYNOPSIS
int nvme_mi_admin_get_log_phy_rx_eom (nvme_mi_ctrl_t ctrl , __u8 lsp , __u16 controller , __u32 len , struct nvme_phy_rx_eom_log *log );

## ARGUMENTS
ctrl

Controller to query

lsp

Log specific, controls action and measurement quality

controller

Target controller ID

len

The allocated size, minimum struct nvme_phy_rx_eom_log

log

User address to store the log page

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise


text:
# nvme_mi_admin_get_log_predictable_lat_event(2)

## NAME
nvme_mi_admin_get_log_predictable_lat_event - Retrieve Predictable Latency Event Aggregate Log Page

## SYNOPSIS
int nvme_mi_admin_get_log_predictable_lat_event (nvme_mi_ctrl_t ctrl , bool rae , __u32 offset , __u32 len , void *log );

## ARGUMENTS
ctrl

Controller to query

rae

Retain asynchronous events

offset

Offset into the predictable latency event

len

Length of provided user buffer to hold the log data in bytes

log

User address for log page data

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


summary: Predictable Latency Per NVM Set

text:
# nvme_mi_admin_get_log_predictable_lat_nvmset(2)

## NAME
nvme_mi_admin_get_log_predictable_lat_nvmset - Predictable Latency Per NVM Set

## SYNOPSIS
int nvme_mi_admin_get_log_predictable_lat_nvmset (nvme_mi_ctrl_t ctrl , __u16 nvmsetid , struct nvme_nvmset_predictable_lat_log *log );

## ARGUMENTS
ctrl

Controller to query

nvmsetid

NVM set id

log

User address to store the predictable latency log

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.


summary: Retrieve Pull Model DDC Request Log

text:
# nvme_mi_admin_get_log_pull_model_ddc_req(2)

## NAME
nvme_mi_admin_get_log_pull_model_ddc_req - Retrieve Pull Model DDC Request Log

## SYNOPSIS
int nvme_mi_admin_get_log_pull_model_ddc_req (nvme_mi_ctrl_t ctrl , bool rae , __u32 len , struct nvme_pull_model_ddc_req_log *log );

## ARGUMENTS
ctrl

Controller to query

rae

Retain asynchronous events

len

The allocated length of the log page

log

User address to store the log page

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise


summary: Retrieve Reachability Associations Log

text:
# nvme_mi_admin_get_log_reachability_associations(2)

## NAME
nvme_mi_admin_get_log_reachability_associations - Retrieve Reachability Associations Log

## SYNOPSIS
int nvme_mi_admin_get_log_reachability_associations (nvme_mi_ctrl_t ctrl , bool rao , bool rae , __u32 len , struct nvme_reachability_associations_log *log );

## ARGUMENTS
ctrl

Controller to query

rao

Return associations only

rae

Retain asynchronous events

len

The allocated length of the log page

log

User address to store the log page

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise


summary: Retrieve Reachability Groups Log

text:
# nvme_mi_admin_get_log_reachability_groups(2)

## NAME
nvme_mi_admin_get_log_reachability_groups - Retrieve Reachability Groups Log

## SYNOPSIS
int nvme_mi_admin_get_log_reachability_groups (nvme_mi_ctrl_t ctrl , bool rgo , bool rae , __u32 len , struct nvme_reachability_groups_log *log );

## ARGUMENTS
ctrl

Controller to query

rgo

Return groups only

rae

Retain asynchronous events

len

The allocated length of the log page

log

User address to store the log page

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise


title: nvme_mi_admin_get_log_reservation(2)

summary: Retrieve Reservation Notification

text:
# nvme_mi_admin_get_log_reservation(2)

## NAME
nvme_mi_admin_get_log_reservation - Retrieve Reservation Notification

## SYNOPSIS
int nvme_mi_admin_get_log_reservation (nvme_mi_ctrl_t ctrl , bool rae , struct nvme_resv_notification_log *log );

## ARGUMENTS
ctrl

Controller to query

rae

Retain asynchronous events

log

User address to store the reservation log

## RETURN
The nvme command status if a response was received (see enum nvme_status_field) or -1 with errno set otherwise.