spdk_nvme_ctrlr_opts Struct Reference

NVMe controller initialization options. More...

Data Fields

uint32_t num_io_queues
 Number of I/O queues to request (used to set Number of Queues feature)
 
bool use_cmb_sqs
 Enable submission queue in controller memory buffer.
 
bool no_shn_notification
 Don't initiate shutdown processing.
 
enum spdk_nvme_cc_ams arb_mechanism
 Type of arbitration mechanism.
 
uint8_t arbitration_burst
 Maximum number of commands that the controller may launch at one time. More...
 
uint8_t low_priority_weight
 Number of commands that may be executed from the low priority queue in each arbitration round. More...
 
uint8_t medium_priority_weight
 Number of commands that may be executed from the medium priority queue in each arbitration round. More...
 
uint8_t high_priority_weight
 Number of commands that may be executed from the high priority queue in each arbitration round. More...
 
uint32_t keep_alive_timeout_ms
 Keep alive timeout in milliseconds (0 = disabled). More...
 
uint8_t transport_retry_count
 Specify the retry number when there is issue with the transport.
 
uint32_t io_queue_size
 The queue depth of each NVMe I/O queue.
 
char hostnqn [SPDK_NVMF_NQN_MAX_LEN+1]
 The host NQN to use when connecting to NVMe over Fabrics controllers. More...
 
uint32_t io_queue_requests
 The number of requests to allocate for each NVMe I/O queue. More...
 
char src_addr [SPDK_NVMF_TRADDR_MAX_LEN+1]
 Source address for NVMe-oF connections. More...
 
char src_svcid [SPDK_NVMF_TRSVCID_MAX_LEN+1]
 Source service ID (port) for NVMe-oF connections. More...
 
uint8_t host_id [8]
 The host identifier to use when connecting to controllers with 64-bit host ID support. More...
 
uint8_t extended_host_id [16]
 The host identifier to use when connecting to controllers with extended (128-bit) host ID support. More...
 
enum spdk_nvme_cc_css command_set
 The I/O command set to select. More...
 
uint32_t admin_timeout_ms
 Admin commands timeout in milliseconds (0 = no timeout). More...
 
bool header_digest
 It is used for TCP transport. More...
 
bool data_digest
 It is used for TCP transport. More...
 
bool disable_error_logging
 Disable logging of requests that are completed with error status. More...
 

Detailed Description

NVMe controller initialization options.

A pointer to this structure will be provided for each probe callback from spdk_nvme_probe() to allow the user to request non-default options, and the actual options enabled on the controller will be provided during the attach callback.

Field Documentation

◆ admin_timeout_ms

uint32_t spdk_nvme_ctrlr_opts::admin_timeout_ms

Admin commands timeout in milliseconds (0 = no timeout).

The timeout value is used for admin commands submitted internally by the nvme driver during initialization, before the user is able to call spdk_nvme_ctrlr_register_timeout_callback(). By default, this is set to 120 seconds, users can change it in the probing callback.

◆ arbitration_burst

uint8_t spdk_nvme_ctrlr_opts::arbitration_burst

Maximum number of commands that the controller may launch at one time.

The value is expressed as a power of two, valid values are from 0-7, and 7 means unlimited.

◆ command_set

enum spdk_nvme_cc_css spdk_nvme_ctrlr_opts::command_set

The I/O command set to select.

If the requested command set is not supported, the controller initialization process will not proceed. By default, the NVM command set is used.

◆ data_digest

bool spdk_nvme_ctrlr_opts::data_digest

It is used for TCP transport.

Set to true, means having data digest for the data in the NVMe/TCP PDU

◆ disable_error_logging

bool spdk_nvme_ctrlr_opts::disable_error_logging

Disable logging of requests that are completed with error status.

Defaults to 'false' (errors are logged).

◆ extended_host_id

uint8_t spdk_nvme_ctrlr_opts::extended_host_id[16]

The host identifier to use when connecting to controllers with extended (128-bit) host ID support.

Set to all zeroes to specify that no host ID should be provided to the controller.

◆ header_digest

bool spdk_nvme_ctrlr_opts::header_digest

It is used for TCP transport.

Set to true, means having header digest for the header in the NVMe/TCP PDU

◆ high_priority_weight

uint8_t spdk_nvme_ctrlr_opts::high_priority_weight

Number of commands that may be executed from the high priority queue in each arbitration round.

This field is only valid when arb_mechanism is set to SPDK_NVME_CC_AMS_WRR (weighted round robin).

◆ host_id

uint8_t spdk_nvme_ctrlr_opts::host_id[8]

The host identifier to use when connecting to controllers with 64-bit host ID support.

Set to all zeroes to specify that no host ID should be provided to the controller.

◆ hostnqn

char spdk_nvme_ctrlr_opts::hostnqn[SPDK_NVMF_NQN_MAX_LEN+1]

The host NQN to use when connecting to NVMe over Fabrics controllers.

Unused for local PCIe-attached NVMe devices.

◆ io_queue_requests

uint32_t spdk_nvme_ctrlr_opts::io_queue_requests

The number of requests to allocate for each NVMe I/O queue.

This should be at least as large as io_queue_size.

A single I/O may allocate more than one request, since splitting may be necessary to conform to the device's maximum transfer size, PRP list compatibility requirements, or driver-assisted striping.

◆ keep_alive_timeout_ms

uint32_t spdk_nvme_ctrlr_opts::keep_alive_timeout_ms

Keep alive timeout in milliseconds (0 = disabled).

The NVMe library will set the Keep Alive Timer feature to this value and automatically send Keep Alive commands as needed. The library user must call spdk_nvme_ctrlr_process_admin_completions() periodically to ensure Keep Alive commands are sent.

◆ low_priority_weight

uint8_t spdk_nvme_ctrlr_opts::low_priority_weight

Number of commands that may be executed from the low priority queue in each arbitration round.

This field is only valid when arb_mechanism is set to SPDK_NVME_CC_AMS_WRR (weighted round robin).

◆ medium_priority_weight

uint8_t spdk_nvme_ctrlr_opts::medium_priority_weight

Number of commands that may be executed from the medium priority queue in each arbitration round.

This field is only valid when arb_mechanism is set to SPDK_NVME_CC_AMS_WRR (weighted round robin).

◆ src_addr

char spdk_nvme_ctrlr_opts::src_addr[SPDK_NVMF_TRADDR_MAX_LEN+1]

Source address for NVMe-oF connections.

Set src_addr and src_svcid to empty strings if no source address should be specified.

◆ src_svcid

char spdk_nvme_ctrlr_opts::src_svcid[SPDK_NVMF_TRSVCID_MAX_LEN+1]

Source service ID (port) for NVMe-oF connections.

Set src_addr and src_svcid to empty strings if no source address should be specified.


The documentation for this struct was generated from the following file: