Merging upstream version 1.11.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
fc25ba7fb2
commit
bdf865565e
946 changed files with 4896 additions and 1272 deletions
|
@ -29,6 +29,7 @@ Fabrics-specific definitions.
|
|||
int tos;
|
||||
long keyring;
|
||||
long tls_key;
|
||||
long tls_configured_key;
|
||||
bool duplicate_connect;
|
||||
bool disable_sqflow;
|
||||
bool hdr_digest;
|
||||
|
@ -78,6 +79,9 @@ Fabrics-specific definitions.
|
|||
``tls_key``
|
||||
TLS PSK for the connection
|
||||
|
||||
``tls_configured_key``
|
||||
TLS PSK for connect command for the connection
|
||||
|
||||
``duplicate_connect``
|
||||
Allow multiple connections to the same target
|
||||
|
||||
|
@ -376,6 +380,25 @@ into the topology using **h** as parent.
|
|||
0 on success; on failure errno is set and -1 is returned.
|
||||
|
||||
|
||||
.. c:function:: int nvmf_connect_ctrl (nvme_ctrl_t c)
|
||||
|
||||
Connect a controller
|
||||
|
||||
**Parameters**
|
||||
|
||||
``nvme_ctrl_t c``
|
||||
Controller to be connected
|
||||
|
||||
**Description**
|
||||
|
||||
Issues a 'connect' command to the NVMe-oF controller.
|
||||
**c** must be initialized and not connected to the topology.
|
||||
|
||||
**Return**
|
||||
|
||||
0 on success; on failure errno is set and -1 is returned.
|
||||
|
||||
|
||||
.. c:function:: int nvmf_get_discovery_log (nvme_ctrl_t c, struct nvmf_discovery_log **logp, int max_retries)
|
||||
|
||||
Return the discovery log page
|
||||
|
|
|
@ -2423,6 +2423,27 @@ The nvme command status if a response was received (see
|
|||
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
|
||||
|
||||
|
||||
.. c:function:: int nvme_get_log_lockdown (int fd, __u8 cnscp, struct nvme_lockdown_log *lockdown_log)
|
||||
|
||||
Retrieve lockdown Log
|
||||
|
||||
**Parameters**
|
||||
|
||||
``int fd``
|
||||
File descriptor of nvme device
|
||||
|
||||
``__u8 cnscp``
|
||||
Contents and Scope of Command and Feature Identifier Lists
|
||||
|
||||
``struct nvme_lockdown_log *lockdown_log``
|
||||
Buffer to store the lockdown log
|
||||
|
||||
**Return**
|
||||
|
||||
The nvme command status if a response was received (see
|
||||
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
|
||||
|
||||
|
||||
.. c:function:: int nvme_set_features (struct nvme_set_features_args *args)
|
||||
|
||||
Set a feature attribute
|
||||
|
|
|
@ -760,6 +760,37 @@ on error. It is the responsibility of the caller to free the returned
|
|||
string.
|
||||
|
||||
|
||||
.. c:function:: char * nvme_export_tls_key_versioned (unsigned char version, unsigned char hmac, const unsigned char *key_data, size_t key_len)
|
||||
|
||||
Export a TLS pre-shared key
|
||||
|
||||
**Parameters**
|
||||
|
||||
``unsigned char version``
|
||||
Indicated the representation of the TLS PSK
|
||||
|
||||
``unsigned char hmac``
|
||||
HMAC algorithm used to transfor the configured PSK
|
||||
in a retained PSK
|
||||
|
||||
``const unsigned char *key_data``
|
||||
Raw data of the key
|
||||
|
||||
``size_t key_len``
|
||||
Length of **key_data**
|
||||
|
||||
**Description**
|
||||
|
||||
Returns **key_data** in the PSK Interchange format as defined in section
|
||||
3.6.1.5 of the NVMe TCP Transport specification.
|
||||
|
||||
**Return**
|
||||
|
||||
The string containing the TLS identity or NULL with errno set
|
||||
on error. It is the responsibility of the caller to free the returned
|
||||
string.
|
||||
|
||||
|
||||
.. c:function:: unsigned char * nvme_import_tls_key (const char *encoded_key, int *key_len, unsigned int *hmac)
|
||||
|
||||
Import a TLS key
|
||||
|
@ -786,6 +817,36 @@ 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.
|
||||
|
||||
|
||||
.. c:function:: unsigned char * nvme_import_tls_key_versioned (const char *encoded_key, unsigned char *version, unsigned char *hmac, size_t *key_len)
|
||||
|
||||
Import a TLS key
|
||||
|
||||
**Parameters**
|
||||
|
||||
``const char *encoded_key``
|
||||
TLS key in PSK interchange format
|
||||
|
||||
``unsigned char *version``
|
||||
Indicated the representation of the TLS PSK
|
||||
|
||||
``unsigned char *hmac``
|
||||
HMAC algorithm used to transfor the configured
|
||||
PSK in a retained PSK
|
||||
|
||||
``size_t *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.
|
||||
|
||||
|
||||
.. c:function:: int nvme_submit_passthru (int fd, unsigned long ioctl_cmd, struct nvme_passthru_cmd *cmd, __u32 *result)
|
||||
|
||||
Low level ioctl wrapper for passthru commands
|
||||
|
|
108
doc/rst/mi.rst
108
doc/rst/mi.rst
|
@ -578,6 +578,63 @@ This is the generic response format with the three doublewords of completion
|
|||
queue data, plus optional response data.
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:enum:: nvme_mi_control_opcode
|
||||
|
||||
Operation code for Control Primitives.
|
||||
|
||||
**Constants**
|
||||
|
||||
``nvme_mi_control_opcode_pause``
|
||||
Suspend response transmission/timeout
|
||||
|
||||
``nvme_mi_control_opcode_resume``
|
||||
Resume from a paused condition
|
||||
|
||||
``nvme_mi_control_opcode_abort``
|
||||
Re-initialize a Command Slot to the Idle state
|
||||
|
||||
``nvme_mi_control_opcode_get_state``
|
||||
Get the state of a Command Slot
|
||||
|
||||
``nvme_mi_control_opcode_replay``
|
||||
Retransmit the Response Message
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:struct:: nvme_mi_control_req
|
||||
|
||||
The Control Primitive request.
|
||||
|
||||
**Definition**
|
||||
|
||||
::
|
||||
|
||||
struct nvme_mi_control_req {
|
||||
struct nvme_mi_msg_hdr hdr;
|
||||
__u8 opcode;
|
||||
__u8 tag;
|
||||
__le16 cpsp;
|
||||
};
|
||||
|
||||
**Members**
|
||||
|
||||
``hdr``
|
||||
Generic MI message header
|
||||
|
||||
``opcode``
|
||||
Control Primitive Opcodes (using :c:type:`enum nvme_mi_control_opcode <nvme_mi_control_opcode>`)
|
||||
|
||||
``tag``
|
||||
flag - Opaque value passed from request to response
|
||||
|
||||
``cpsp``
|
||||
Control Primitive Specific Parameter
|
||||
|
||||
|
||||
|
||||
.. c:function:: const char * nvme_mi_status_to_string (int status)
|
||||
|
||||
return a string representation of the MI status.
|
||||
|
@ -1617,6 +1674,36 @@ The nvme command status if a response was received (see
|
|||
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
|
||||
|
||||
|
||||
.. c:function:: int nvme_mi_control (nvme_mi_ep_t ep, __u8 opcode, __u16 cpsp, __u16 *result_cpsr)
|
||||
|
||||
Perform a Control Primitive command
|
||||
|
||||
**Parameters**
|
||||
|
||||
``nvme_mi_ep_t ep``
|
||||
endpoint for MI communication
|
||||
|
||||
``__u8 opcode``
|
||||
Control Primitive opcode (using :c:type:`enum nvme_mi_control_opcode <nvme_mi_control_opcode>`)
|
||||
|
||||
``__u16 cpsp``
|
||||
Control Primitive Specific Parameter
|
||||
|
||||
``__u16 *result_cpsr``
|
||||
Optional field to return the result from the CPSR field
|
||||
|
||||
**Description**
|
||||
|
||||
Perform a Control Primitive command, using the opcode specified in **opcode**
|
||||
Stores the result from the CPSR field in **result_cpsr** if set.
|
||||
|
||||
See: :c:type:`enum nvme_mi_control_opcode <nvme_mi_control_opcode>`
|
||||
|
||||
**Return**
|
||||
|
||||
0 on success, non-zero on failure
|
||||
|
||||
|
||||
.. c:function:: int nvme_mi_admin_identify_cns_nsid (nvme_mi_ctrl_t ctrl, enum nvme_identify_cns cns, __u32 nsid, void *data)
|
||||
|
||||
Perform an Admin identify command using specific CNS/NSID parameters.
|
||||
|
@ -2860,6 +2947,27 @@ The nvme command status if a response was received (see
|
|||
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
|
||||
|
||||
|
||||
.. c:function:: int nvme_mi_admin_get_log_lockdown (nvme_mi_ctrl_t ctrl, __u8 cnscp, struct nvme_lockdown_log *lockdown_log)
|
||||
|
||||
Retrieve lockdown Log
|
||||
|
||||
**Parameters**
|
||||
|
||||
``nvme_mi_ctrl_t ctrl``
|
||||
Controller to query
|
||||
|
||||
``__u8 cnscp``
|
||||
Contents and Scope of Command and Feature Identifier Lists
|
||||
|
||||
``struct nvme_lockdown_log *lockdown_log``
|
||||
Buffer to store the lockdown log
|
||||
|
||||
**Return**
|
||||
|
||||
The nvme command status if a response was received (see
|
||||
:c:type:`enum nvme_status_field <nvme_status_field>`) or -1 with errno set otherwise.
|
||||
|
||||
|
||||
.. c:function:: int nvme_mi_admin_security_send (nvme_mi_ctrl_t ctrl, struct nvme_security_send_args *args)
|
||||
|
||||
Perform a Security Send command on a controller.
|
||||
|
|
|
@ -1845,6 +1845,87 @@ DH-HMAC-CHAP controller key or NULL if not set
|
|||
DH-HMAC-CHAP Key to set or NULL to clear existing key
|
||||
|
||||
|
||||
.. c:function:: const char * nvme_ctrl_get_keyring (nvme_ctrl_t c)
|
||||
|
||||
Return keyring
|
||||
|
||||
**Parameters**
|
||||
|
||||
``nvme_ctrl_t c``
|
||||
Controller to be used for the lookup
|
||||
|
||||
**Return**
|
||||
|
||||
Keyring or NULL if not set
|
||||
|
||||
|
||||
.. c:function:: void nvme_ctrl_set_keyring (nvme_ctrl_t c, const char *keyring)
|
||||
|
||||
Set keyring
|
||||
|
||||
**Parameters**
|
||||
|
||||
``nvme_ctrl_t c``
|
||||
Controller for which the keyring should be set
|
||||
|
||||
``const char *keyring``
|
||||
Keyring name
|
||||
|
||||
|
||||
.. c:function:: const char * nvme_ctrl_get_tls_key_identity (nvme_ctrl_t c)
|
||||
|
||||
Return Derive TLS Identity
|
||||
|
||||
**Parameters**
|
||||
|
||||
``nvme_ctrl_t c``
|
||||
Controller to be used for the lookup
|
||||
|
||||
**Return**
|
||||
|
||||
Derive TLS Identity or NULL if not set
|
||||
|
||||
|
||||
.. c:function:: void nvme_ctrl_set_tls_key_identity (nvme_ctrl_t c, const char *identity)
|
||||
|
||||
Set Derive TLS Identity
|
||||
|
||||
**Parameters**
|
||||
|
||||
``nvme_ctrl_t c``
|
||||
Controller for which the key should be set
|
||||
|
||||
``const char *identity``
|
||||
Derive TLS identity or NULL to clear existing key
|
||||
|
||||
|
||||
.. c:function:: const char * nvme_ctrl_get_tls_key (nvme_ctrl_t c)
|
||||
|
||||
Return Derive TLS PSK
|
||||
|
||||
**Parameters**
|
||||
|
||||
``nvme_ctrl_t c``
|
||||
Controller to be used for the lookup
|
||||
|
||||
**Return**
|
||||
|
||||
Key in PSK interchange format or NULL if not set
|
||||
|
||||
|
||||
.. c:function:: void nvme_ctrl_set_tls_key (nvme_ctrl_t c, const char *key)
|
||||
|
||||
Set Derive TLS PSK
|
||||
|
||||
**Parameters**
|
||||
|
||||
``nvme_ctrl_t c``
|
||||
Controller for which the key should be set
|
||||
|
||||
``const char *key``
|
||||
Key in interchange format or NULL to clear existing key
|
||||
|
||||
|
||||
.. c:function:: struct nvme_fabrics_config * nvme_ctrl_get_config (nvme_ctrl_t c)
|
||||
|
||||
Fabrics configuration of a controller
|
||||
|
|
|
@ -49,6 +49,44 @@ The 'name' field from 'value'
|
|||
The 'name' field from 'value'
|
||||
|
||||
|
||||
.. c:macro:: NVME_CHECK
|
||||
|
||||
``NVME_CHECK (value, name, check)``
|
||||
|
||||
check value to compare field value
|
||||
|
||||
**Parameters**
|
||||
|
||||
``value``
|
||||
The value to be checked
|
||||
|
||||
``name``
|
||||
The name of the sub-field within an nvme value
|
||||
|
||||
``check``
|
||||
The sub-field value to check
|
||||
|
||||
**Return**
|
||||
|
||||
The result of compare the value and the sub-field value
|
||||
|
||||
|
||||
.. c:macro:: NVME_VAL
|
||||
|
||||
``NVME_VAL (name)``
|
||||
|
||||
get mask value shifted
|
||||
|
||||
**Parameters**
|
||||
|
||||
``name``
|
||||
The name of the sub-field within an nvme value
|
||||
|
||||
**Return**
|
||||
|
||||
The mask value shifted
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:enum:: nvme_constants
|
||||
|
@ -1536,7 +1574,8 @@ power scale value
|
|||
__le16 domainid;
|
||||
__u8 rsvd358[10];
|
||||
__u8 megcap[16];
|
||||
__u8 rsvd384[128];
|
||||
__u8 tmpthha;
|
||||
__u8 rsvd385[127];
|
||||
__u8 sqes;
|
||||
__u8 cqes;
|
||||
__le16 maxcmd;
|
||||
|
@ -1556,7 +1595,19 @@ power scale value
|
|||
__u8 maxdna[16];
|
||||
__le32 maxcna;
|
||||
__le32 oaqd;
|
||||
__u8 rsvd568[200];
|
||||
__u8 rsvd568[2];
|
||||
__u16 cmmrtd;
|
||||
__u16 nmmrtd;
|
||||
__u8 minmrtg;
|
||||
__u8 maxmrtg;
|
||||
__u8 trattr;
|
||||
__u8 rsvd577;
|
||||
__u16 mcudmq;
|
||||
__u16 mnsudmq;
|
||||
__u16 mcmr;
|
||||
__u16 nmcmr;
|
||||
__u16 mcdqpc;
|
||||
__u8 rsvd588[180];
|
||||
char subnqn[NVME_NQN_LENGTH];
|
||||
__u8 rsvd1024[768];
|
||||
__le32 ioccsz;
|
||||
|
@ -1843,7 +1894,10 @@ power scale value
|
|||
Max Endurance Group Capacity indicates the maximum capacity
|
||||
of a single Endurance Group.
|
||||
|
||||
``rsvd384``
|
||||
``tmpthha``
|
||||
Temperature Threshold Hysteresis Attributes
|
||||
|
||||
``rsvd385``
|
||||
Reserved
|
||||
|
||||
``sqes``
|
||||
|
@ -1933,6 +1987,63 @@ power scale value
|
|||
``rsvd568``
|
||||
Reserved
|
||||
|
||||
``cmmrtd``
|
||||
Controller Maximum Memory Range Tracking Descriptors indicates
|
||||
the maximum number of Memory Range Tracking Descriptors the
|
||||
controller supports.
|
||||
|
||||
``nmmrtd``
|
||||
NVM Subsystem Maximum Memory Range Tracking Descriptors
|
||||
indicates the maximum number of Memory Range Tracking Descriptors
|
||||
the NVM subsystem supports.
|
||||
|
||||
``minmrtg``
|
||||
Minimum Memory Range Tracking Granularity indicates the minimum
|
||||
value supported in the Requested Memory Range Tracking
|
||||
Granularity (RMRTG) field of the Track Memory Ranges data
|
||||
structure.
|
||||
|
||||
``maxmrtg``
|
||||
Maximum Memory Range Tracking Granularity indicates the maximum
|
||||
value supported in the Requested Memory Range Tracking
|
||||
Granularity (RMRTG) field of the Track Memory Ranges data
|
||||
structure.
|
||||
|
||||
``trattr``
|
||||
Tracking Attributes indicates supported attributes for the
|
||||
Track Send command and Track Receive command.
|
||||
|
||||
``rsvd577``
|
||||
Reserved
|
||||
|
||||
``mcudmq``
|
||||
Maximum Controller User Data Migration Queues indicates the
|
||||
maximum number of User Data Migration Queues supported by the
|
||||
controller.
|
||||
|
||||
``mnsudmq``
|
||||
Maximum NVM Subsystem User Data Migration Queues indicates the
|
||||
maximum number of User Data Migration Queues supported by the NVM
|
||||
subsystem.
|
||||
|
||||
``mcmr``
|
||||
Maximum CDQ Memory Ranges indicates the maximum number of
|
||||
memory ranges allowed to be specified by the PRP1 field of a
|
||||
Controller Data Queue command.
|
||||
|
||||
``nmcmr``
|
||||
NVM Subsystem Maximum CDQ Memory Ranges indicates the maximum
|
||||
number of memory ranges for all Controller Data Queues in the
|
||||
NVM subsystem.
|
||||
|
||||
``mcdqpc``
|
||||
Maximum Controller Data Queue PRP Count indicates the maximum
|
||||
number of PRPs allowed to be specified in the PRP list in the
|
||||
Controller Data Queue command.
|
||||
|
||||
``rsvd588``
|
||||
Reserved
|
||||
|
||||
``subnqn``
|
||||
NVM Subsystem NVMe Qualified Name, UTF-8 null terminated string
|
||||
|
||||
|
@ -2060,6 +2171,87 @@ power scale value
|
|||
|
||||
**Constants**
|
||||
|
||||
``NVME_CTRL_OAES_NA_SHIFT``
|
||||
Shift amount to get the Namespace Attribute Notices event supported
|
||||
|
||||
``NVME_CTRL_OAES_FA_SHIFT``
|
||||
Shift amount to get the Firmware Activation Notices event supported
|
||||
|
||||
``NVME_CTRL_OAES_ANA_SHIFT``
|
||||
Shift amount to get the ANA Change Notices supported
|
||||
|
||||
``NVME_CTRL_OAES_PLEA_SHIFT``
|
||||
Shift amount to get the Predictable Latency Event Aggregate Log
|
||||
Change Notices event supported
|
||||
|
||||
``NVME_CTRL_OAES_LBAS_SHIFT``
|
||||
Shift amount to get the LBA Status Information Notices event
|
||||
supported
|
||||
|
||||
``NVME_CTRL_OAES_EGE_SHIFT``
|
||||
Shift amount to get the Endurance Group Events Aggregate Log Change
|
||||
Notices event supported
|
||||
|
||||
``NVME_CTRL_OAES_NS_SHIFT``
|
||||
Shift amount to get the Normal NVM Subsystem Shutdown event supported
|
||||
|
||||
``NVME_CTRL_OAES_TTH_SHIFT``
|
||||
Shift amount to get the Temperature Threshold Hysteresis Recovery
|
||||
event supported
|
||||
|
||||
``NVME_CTRL_OAES_RGCNS_SHIFT``
|
||||
Shift amount to get the Reachability Groups Change Notices supported
|
||||
|
||||
``NVME_CTRL_OAES_ANSAN_SHIFT``
|
||||
Shift amount to get the Allocated Namespace Attribute Notices
|
||||
supported
|
||||
|
||||
``NVME_CTRL_OAES_ZD_SHIFT``
|
||||
Shift amount to get the Zone Descriptor Change Notifications supported
|
||||
|
||||
``NVME_CTRL_OAES_DL_SHIFT``
|
||||
Shift amount to get the Discover Log Page Change Notifications
|
||||
supported
|
||||
|
||||
``NVME_CTRL_OAES_NA_MASK``
|
||||
Mask to get the Namespace Attribute Notices event supported
|
||||
|
||||
``NVME_CTRL_OAES_FA_MASK``
|
||||
Mask to get the Firmware Activation Notices event supported
|
||||
|
||||
``NVME_CTRL_OAES_ANA_MASK``
|
||||
Mask to get the ANA Change Notices supported
|
||||
|
||||
``NVME_CTRL_OAES_PLEA_MASK``
|
||||
Mask to get the Predictable Latency Event Aggregate Log Change Notices
|
||||
event supported
|
||||
|
||||
``NVME_CTRL_OAES_LBAS_MASK``
|
||||
Mask to get the LBA Status Information Notices event supported
|
||||
|
||||
``NVME_CTRL_OAES_EGE_MASK``
|
||||
Mask to get the Endurance Group Events Aggregate Log Change Notices
|
||||
event supported
|
||||
|
||||
``NVME_CTRL_OAES_NS_MASK``
|
||||
Mask to get the Normal NVM Subsystem Shutdown event supported
|
||||
|
||||
``NVME_CTRL_OAES_TTH_MASK``
|
||||
Mask to get the Temperature Threshold Hysteresis Recovery event
|
||||
supported
|
||||
|
||||
``NVME_CTRL_OAES_RGCNS_MASK``
|
||||
Mask to get the Reachability Groups Change Notices supported
|
||||
|
||||
``NVME_CTRL_OAES_ANSAN_MASK``
|
||||
Mask to get the Allocated Namespace Attribute Notices supported
|
||||
|
||||
``NVME_CTRL_OAES_ZD_MASK``
|
||||
Mask to get the Zone Descriptor Change Notifications supported
|
||||
|
||||
``NVME_CTRL_OAES_DL_MASK``
|
||||
Mask to get the Discover Log Page Change Notifications supported
|
||||
|
||||
``NVME_CTRL_OAES_NA``
|
||||
Namespace Attribute Notices event supported
|
||||
|
||||
|
@ -2070,19 +2262,26 @@ power scale value
|
|||
ANA Change Notices supported
|
||||
|
||||
``NVME_CTRL_OAES_PLEA``
|
||||
Predictable Latency Event Aggregate Log
|
||||
Change Notices event supported
|
||||
Predictable Latency Event Aggregate Log Change Notices event supported
|
||||
|
||||
``NVME_CTRL_OAES_LBAS``
|
||||
LBA Status Information Notices event supported
|
||||
|
||||
``NVME_CTRL_OAES_EGE``
|
||||
Endurance Group Events Aggregate Log Change
|
||||
Notices event supported
|
||||
Endurance Group Events Aggregate Log Change Notices event supported
|
||||
|
||||
``NVME_CTRL_OAES_NS``
|
||||
Normal NVM Subsystem Shutdown event supported
|
||||
|
||||
``NVME_CTRL_OAES_TTH``
|
||||
Temperature Threshold Hysteresis Recovery event supported
|
||||
|
||||
``NVME_CTRL_OAES_RGCNS``
|
||||
Reachability Groups Change Notices supported
|
||||
|
||||
``NVME_CTRL_OAES_ANSAN``
|
||||
Allocated Namespace Attribute Notices supported
|
||||
|
||||
``NVME_CTRL_OAES_ZD``
|
||||
Zone Descriptor Change Notifications supported
|
||||
|
||||
|
@ -2645,6 +2844,30 @@ power scale value
|
|||
|
||||
**Constants**
|
||||
|
||||
``NVME_CTRL_FNA_FMT_ALL_NS_SHIFT``
|
||||
Shift amount to get the format applied to all namespaces
|
||||
|
||||
``NVME_CTRL_FNA_SEC_ALL_NS_SHIFT``
|
||||
Shift amount to get the secure erase applied to all namespaces
|
||||
|
||||
``NVME_CTRL_FNA_CES_SHIFT``
|
||||
Shift amount to get the cryptographic erase supported
|
||||
|
||||
``NVME_CTRL_FNA_NSID_ALL_F_SHIFT``
|
||||
Shift amount to get the format supported an NSID FFFFFFFFh
|
||||
|
||||
``NVME_CTRL_FNA_FMT_ALL_NS_MASK``
|
||||
Mask to get the format applied to all namespaces
|
||||
|
||||
``NVME_CTRL_FNA_SEC_ALL_NS_MASK``
|
||||
Mask to get the secure erase applied to all namespaces
|
||||
|
||||
``NVME_CTRL_FNA_CES_MASK``
|
||||
Mask to get the cryptographic erase supported
|
||||
|
||||
``NVME_CTRL_FNA_NSID_ALL_F_MASK``
|
||||
Mask to get the format supported an NSID FFFFFFFFh
|
||||
|
||||
``NVME_CTRL_FNA_FMT_ALL_NAMESPACES``
|
||||
If set, then all namespaces in an NVM
|
||||
subsystem shall be configured with the
|
||||
|
@ -3795,7 +4018,9 @@ power scale value
|
|||
__le64 dmsl;
|
||||
__u8 rsvd16[2];
|
||||
__le16 aocs;
|
||||
__u8 rsvd20[4076];
|
||||
__le32 ver;
|
||||
__u8 lbamqf;
|
||||
__u8 rsvd25[4071];
|
||||
};
|
||||
|
||||
**Members**
|
||||
|
@ -3824,7 +4049,13 @@ power scale value
|
|||
``aocs``
|
||||
Admin Optional Command Support
|
||||
|
||||
``rsvd20``
|
||||
``ver``
|
||||
Version
|
||||
|
||||
``lbamqf``
|
||||
LBA Migration Queue Format
|
||||
|
||||
``rsvd25``
|
||||
Reserved
|
||||
|
||||
|
||||
|
@ -3846,7 +4077,11 @@ power scale value
|
|||
__u8 rsvd10[2];
|
||||
__le32 elbaf[64];
|
||||
__le32 npdgl;
|
||||
__u8 rsvd272[20];
|
||||
__le32 nprg;
|
||||
__le32 npra;
|
||||
__le32 nors;
|
||||
__le32 npdal;
|
||||
__le32 lbapss;
|
||||
__le32 tlbaag;
|
||||
__u8 rsvd296[3800];
|
||||
};
|
||||
|
@ -3871,8 +4106,20 @@ power scale value
|
|||
``npdgl``
|
||||
Namespace Preferred Deallocate Granularity Large
|
||||
|
||||
``rsvd272``
|
||||
Reserved
|
||||
``nprg``
|
||||
Namespace Preferred Read Granularity
|
||||
|
||||
``npra``
|
||||
Namespace Preferred Read Alignment
|
||||
|
||||
``nors``
|
||||
Namespace Optimal Read Size
|
||||
|
||||
``npdal``
|
||||
Namespace Preferred Deallocate Alignment Large
|
||||
|
||||
``lbapss``
|
||||
LBA Format Placement Shard Size
|
||||
|
||||
``tlbaag``
|
||||
Tracked LBA Allocation Granularity
|
||||
|
@ -4854,6 +5101,9 @@ Supported Log Pages (Log Identifier 00h)
|
|||
``NVME_CMD_EFFECTS_CCC``
|
||||
Controller Capability Change
|
||||
|
||||
``NVME_CMD_EFFECTS_CSER_MASK``
|
||||
Command Submission and Execution Relaxations
|
||||
|
||||
``NVME_CMD_EFFECTS_CSE_MASK``
|
||||
Command Submission and Execution
|
||||
|
||||
|
@ -5879,6 +6129,9 @@ bytes, in size. This log captures the controller’s internal state.
|
|||
``NVME_PEL_THERMAL_EXCURSION_EVENT``
|
||||
Thermal Excursion Event
|
||||
|
||||
``NVME_PEL_SANITIZE_MEDIA_VERIF_EVENT``
|
||||
Sanitize Media Verification Event
|
||||
|
||||
``NVME_PEL_VENDOR_SPECIFIC_EVENT``
|
||||
Vendor Specific Event
|
||||
|
||||
|
@ -7289,6 +7542,39 @@ bytes, in size. This log captures the controller’s internal state.
|
|||
|
||||
|
||||
|
||||
.. c:struct:: nvme_lockdown_log
|
||||
|
||||
Command and Feature Lockdown Log
|
||||
|
||||
**Definition**
|
||||
|
||||
::
|
||||
|
||||
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
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:struct:: nvme_resv_notification_log
|
||||
|
||||
Reservation Notification Log
|
||||
|
@ -7369,7 +7655,9 @@ bytes, in size. This log captures the controller’s internal state.
|
|||
__le32 etond;
|
||||
__le32 etbend;
|
||||
__le32 etcend;
|
||||
__u8 rsvd32[480];
|
||||
__le32 etpvds;
|
||||
__u8 ssi;
|
||||
__u8 rsvd37[475];
|
||||
};
|
||||
|
||||
**Members**
|
||||
|
@ -7456,7 +7744,19 @@ bytes, in size. This log captures the controller’s internal state.
|
|||
started that operation is completed. A value of FFFFFFFFh indicates
|
||||
that no time period is reported.
|
||||
|
||||
``rsvd32``
|
||||
``etpvds``
|
||||
Estimated Time For Post-Verification Deallocation State: indicates the
|
||||
number of seconds required to deallocate all media allocated for user data
|
||||
after exiting the Media Verification state (i.e., the time difference between
|
||||
entering and exiting the Post-Verification Deallocation state), if that state
|
||||
is entered as part of the sanitize operation. A value of FFFFFFFFh indicates
|
||||
that no time period is reported.
|
||||
|
||||
``ssi``
|
||||
Sanitize State Information: indicate the state of the Sanitize Operation
|
||||
State Machine.
|
||||
|
||||
``rsvd37``
|
||||
Reserved
|
||||
|
||||
|
||||
|
@ -7532,6 +7832,79 @@ bytes, in size. This log captures the controller’s internal state.
|
|||
or since the most recent successful sanitize
|
||||
operation.
|
||||
|
||||
``NVME_SANITIZE_SSTAT_MVCNCLD_SHIFT``
|
||||
Shift amount to get the value of Media Verification
|
||||
Canceled bit of Sanitize status field.
|
||||
|
||||
``NVME_SANITIZE_SSTAT_MVCNCLD_MASK``
|
||||
Mask to get the value of Media Verification Canceled
|
||||
bit of Sanitize status field.
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:enum:: nvme_sanitize_ssi
|
||||
|
||||
Sanitize State Information (SSI)
|
||||
|
||||
**Constants**
|
||||
|
||||
``NVME_SANITIZE_SSI_SANS_SHIFT``
|
||||
Shift amount to get the value of Sanitize State
|
||||
from Sanitize State Information (SSI) field.
|
||||
|
||||
``NVME_SANITIZE_SSI_SANS_MASK``
|
||||
Mask to get the value of Sanitize State from
|
||||
Sanitize State Information (SSI) field.
|
||||
|
||||
``NVME_SANITIZE_SSI_FAILS_SHIFT``
|
||||
Shift amount to get the value of Failure State
|
||||
from Sanitize State Information (SSI) field.
|
||||
|
||||
``NVME_SANITIZE_SSI_FAILS_MASK``
|
||||
Mask to get the value of Failure State from
|
||||
Sanitize State Information (SSI) field.
|
||||
|
||||
``NVME_SANITIZE_SSI_IDLE``
|
||||
No sanitize operation is in process.
|
||||
|
||||
``NVME_SANITIZE_SSI_RESTRICT_PROCESSING``
|
||||
The Sanitize operation is in Restricted Processing
|
||||
State.
|
||||
|
||||
``NVME_SANITIZE_SSI_RESTRICT_FAILURE``
|
||||
The Sanitize operation is in Restricted Failure
|
||||
State. This state is entered if sanitize processing
|
||||
was performed in the Restricted Processing state and
|
||||
sanitize processing failed or a failure occurred
|
||||
during deallocation of media allocated for user data
|
||||
in the Post-Verification Deallocation state.
|
||||
|
||||
``NVME_SANITIZE_SSI_UNRESTRICT_PROCESSING``
|
||||
The Sanitize operation is in Unrestricted Processing
|
||||
State.
|
||||
|
||||
``NVME_SANITIZE_SSI_UNRESTRICT_FAILURE``
|
||||
The Sanitize operation is in Unrestricted Failure
|
||||
State. This state is entered if sanitize processing
|
||||
was performed in the Unrestricted Processing state
|
||||
and sanitize processing failed or a failure occurred
|
||||
during deallocation of media allocated for user data
|
||||
in the Post-Verification.
|
||||
|
||||
``NVME_SANITIZE_SSI_MEDIA_VERIFICATION``
|
||||
The Sanitize operation is in Media Verification
|
||||
State. In this state, the sanitize processing
|
||||
completed successfully, and all media allocated for
|
||||
user data in the sanitization target is readable by
|
||||
the host for purposes of verifying sanitization.
|
||||
|
||||
``NVME_SANITIZE_SSI_POST_VERIF_DEALLOC``
|
||||
The Sanitize operation is in Post-Verification
|
||||
Deallocation State. In this state, the controller
|
||||
shall deallocate all media allocated for user data
|
||||
in the sanitization target.
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -7778,6 +8151,66 @@ bytes, in size. This log captures the controller’s internal state.
|
|||
|
||||
|
||||
|
||||
.. c:enum:: nvme_lockdown_log_scope
|
||||
|
||||
lockdown log page scope attributes
|
||||
|
||||
**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
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:enum:: nvme_lockdown_log_contents
|
||||
|
||||
lockdown log page content attributes
|
||||
|
||||
**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
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:enum:: nvme_lockdown_scope_contents
|
||||
|
||||
Lockdown Log shift and 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
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:struct:: nvme_fdp_config_desc
|
||||
|
||||
FDP Configuration Descriptor
|
||||
|
@ -8373,6 +8806,28 @@ bytes, in size. This log captures the controller’s internal state.
|
|||
|
||||
|
||||
|
||||
.. c:enum:: nvme_lba_status_cmpc
|
||||
|
||||
Get LBA Status Command Completion Condition
|
||||
|
||||
**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
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:struct:: nvme_feat_auto_pst
|
||||
|
||||
Autonomous Power State Transition
|
||||
|
@ -11550,6 +12005,30 @@ entries are of a variable lengths (TEL), TEL is always a multiple of
|
|||
Host NQN used by the DDC to connect
|
||||
to the CDC.
|
||||
|
||||
``NVME_SC_INVALID_CONTROLER_DATA_QUEUE``
|
||||
This error indicates that the
|
||||
specified Controller Data Queue
|
||||
Identifier is invalid for the controller
|
||||
processing the command.
|
||||
|
||||
``NVME_SC_NOT_ENOUGH_RESOURCES``
|
||||
This error indicates that there is not
|
||||
enough resources in the controller to
|
||||
process the command.
|
||||
|
||||
``NVME_SC_CONTROLLER_SUSPENDED``
|
||||
The operation requested is not allowed if
|
||||
the specified controller is suspended.
|
||||
|
||||
``NVME_SC_CONTROLLER_NOT_SUSPENDED``
|
||||
The operation requested is not allowed if
|
||||
the specified controller is not
|
||||
suspended.
|
||||
|
||||
``NVME_SC_CONTROLLER_DATA_QUEUE_FULL``
|
||||
The controller detected that a
|
||||
Controller Data Queue became full.
|
||||
|
||||
``NVME_SC_BAD_ATTRIBUTES``
|
||||
Conflicting Dataset Management Attributes
|
||||
|
||||
|
@ -12088,6 +12567,11 @@ true if **status** is of the specified type and value
|
|||
``NVME_IDENTIFY_CNS_COMMAND_SET_STRUCTURE``
|
||||
Base Specification 2.0a section 5.17.2.21
|
||||
|
||||
``NVME_IDENTIFY_CNS_SUPPORTED_CTRL_STATE_FORMATS``
|
||||
Supported Controller State Formats
|
||||
identifying the supported NVMe Controller
|
||||
State data structures
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -12163,9 +12647,27 @@ true if **status** is of the specified type and value
|
|||
``NVME_LOG_LID_BOOT_PARTITION``
|
||||
Boot Partition
|
||||
|
||||
``NVME_LOG_LID_ROTATIONAL_MEDIA_INFO``
|
||||
Rotational Media Information
|
||||
|
||||
``NVME_LOG_LID_DISPERSED_NS_PARTICIPATING_NSS``
|
||||
Dispersed Namespace Participating NVM Subsystems
|
||||
|
||||
``NVME_LOG_LID_MGMT_ADDR_LIST``
|
||||
Management Address List
|
||||
|
||||
``NVME_LOG_LID_PHY_RX_EOM``
|
||||
Physical Interface Receiver Eye Opening Measurement
|
||||
|
||||
``NVME_LOG_LID_REACHABILITY_GROUPS``
|
||||
Reachability Groups
|
||||
|
||||
``NVME_LOG_LID_REACHABILITY_ASSOCIATIONS``
|
||||
Reachability Associations
|
||||
|
||||
``NVME_LOG_LID_CHANGED_ALLOC_NS_LIST``
|
||||
Changed Allocated Namespace List
|
||||
|
||||
``NVME_LOG_LID_FDP_CONFIGS``
|
||||
FDP Configurations
|
||||
|
||||
|
@ -12181,6 +12683,15 @@ true if **status** is of the specified type and value
|
|||
``NVME_LOG_LID_DISCOVER``
|
||||
Discovery
|
||||
|
||||
``NVME_LOG_LID_HOST_DISCOVER``
|
||||
Host Discovery
|
||||
|
||||
``NVME_LOG_LID_AVE_DISCOVER``
|
||||
AVE Discovery
|
||||
|
||||
``NVME_LOG_LID_PULL_MODEL_DDC_REQ``
|
||||
Pull Model DDC Request
|
||||
|
||||
``NVME_LOG_LID_RESERVATION``
|
||||
Reservation Notification
|
||||
|
||||
|
@ -12782,6 +13293,9 @@ true if **status** is of the specified type and value
|
|||
``NVME_SANITIZE_SANACT_START_CRYPTO_ERASE``
|
||||
Start a Crypto Erase sanitize operation.
|
||||
|
||||
``NVME_SANITIZE_SANACT_EXIT_MEDIA_VERIF``
|
||||
Exit Media Verification State
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -13151,6 +13665,45 @@ true if **status** is of the specified type and value
|
|||
|
||||
|
||||
|
||||
.. c:enum:: nvme_kv_opcode
|
||||
|
||||
Opcodes for KV Commands
|
||||
|
||||
**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
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:enum:: nvme_io_control_flags
|
||||
|
||||
I/O control flags
|
||||
|
|
|
@ -73,6 +73,9 @@ libnvme utility functions
|
|||
``ENVME_CONNECT_IGNORED``
|
||||
connect attempt is ignored due to configuration
|
||||
|
||||
``ENVME_CONNECT_NOKEY``
|
||||
the TLS key is missing
|
||||
|
||||
|
||||
.. c:function:: __u8 nvme_status_to_errno (int status, bool fabrics)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue