summaryrefslogtreecommitdiffstats
path: root/doc/rst
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-11-09 08:04:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-11-09 08:04:14 +0000
commit90e4bb6ac55713bbad28f98f515b9d5dcafb7c82 (patch)
tree8d020c088a40dc6f1db2a16e6697db7a22238da0 /doc/rst
parentReleasing debian version 1.10-1. (diff)
downloadlibnvme-90e4bb6ac55713bbad28f98f515b9d5dcafb7c82.tar.xz
libnvme-90e4bb6ac55713bbad28f98f515b9d5dcafb7c82.zip
Merging upstream version 1.11.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'doc/rst')
-rw-r--r--doc/rst/fabrics.rst23
-rw-r--r--doc/rst/ioctl.rst21
-rw-r--r--doc/rst/linux.rst61
-rw-r--r--doc/rst/mi.rst108
-rw-r--r--doc/rst/tree.rst81
-rw-r--r--doc/rst/types.rst581
-rw-r--r--doc/rst/util.rst3
7 files changed, 864 insertions, 14 deletions
diff --git a/doc/rst/fabrics.rst b/doc/rst/fabrics.rst
index 218084c..6c8831b 100644
--- a/doc/rst/fabrics.rst
+++ b/doc/rst/fabrics.rst
@@ -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
diff --git a/doc/rst/ioctl.rst b/doc/rst/ioctl.rst
index 050bf99..015f05b 100644
--- a/doc/rst/ioctl.rst
+++ b/doc/rst/ioctl.rst
@@ -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
diff --git a/doc/rst/linux.rst b/doc/rst/linux.rst
index 05d1418..2693373 100644
--- a/doc/rst/linux.rst
+++ b/doc/rst/linux.rst
@@ -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
diff --git a/doc/rst/mi.rst b/doc/rst/mi.rst
index e5c2bd1..e9d2e56 100644
--- a/doc/rst/mi.rst
+++ b/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.
diff --git a/doc/rst/tree.rst b/doc/rst/tree.rst
index ee46d11..fd3b684 100644
--- a/doc/rst/tree.rst
+++ b/doc/rst/tree.rst
@@ -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
diff --git a/doc/rst/types.rst b/doc/rst/types.rst
index 7236642..245afce 100644
--- a/doc/rst/types.rst
+++ b/doc/rst/types.rst
@@ -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
diff --git a/doc/rst/util.rst b/doc/rst/util.rst
index 56df0f6..6d024ed 100644
--- a/doc/rst/util.rst
+++ b/doc/rst/util.rst
@@ -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)