diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-11-09 08:04:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-11-09 08:04:14 +0000 |
commit | 90e4bb6ac55713bbad28f98f515b9d5dcafb7c82 (patch) | |
tree | 8d020c088a40dc6f1db2a16e6697db7a22238da0 /doc/rst | |
parent | Releasing debian version 1.10-1. (diff) | |
download | libnvme-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.rst | 23 | ||||
-rw-r--r-- | doc/rst/ioctl.rst | 21 | ||||
-rw-r--r-- | doc/rst/linux.rst | 61 | ||||
-rw-r--r-- | doc/rst/mi.rst | 108 | ||||
-rw-r--r-- | doc/rst/tree.rst | 81 | ||||
-rw-r--r-- | doc/rst/types.rst | 581 | ||||
-rw-r--r-- | doc/rst/util.rst | 3 |
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) |