@@ -1360,6 +1360,39 @@ struct nvme_id_psd {
13601360 * total number of outstanding I/O commands across all I/O queues
13611361 * on the controller for optimal operation.
13621362 * @rsvd568: Reserved
1363+ * @cmmrtd: Controller Maximum Memory Range Tracking Descriptors indicates
1364+ * the maximum number of Memory Range Tracking Descriptors the
1365+ * controller supports.
1366+ * @nmmrtd: NVM Subsystem Maximum Memory Range Tracking Descriptors
1367+ * indicates the maximum number of Memory Range Tracking Descriptors
1368+ * the NVM subsystem supports.
1369+ * @minmrtg: Minimum Memory Range Tracking Granularity indicates the minimum
1370+ * value supported in the Requested Memory Range Tracking
1371+ * Granularity (RMRTG) field of the Track Memory Ranges data
1372+ * structure.
1373+ * @maxmrtg: Maximum Memory Range Tracking Granularity indicates the maximum
1374+ * value supported in the Requested Memory Range Tracking
1375+ * Granularity (RMRTG) field of the Track Memory Ranges data
1376+ * structure.
1377+ * @trattr: Tracking Attributes indicates supported attributes for the
1378+ * Track Send command and Track Receive command.
1379+ * @rsvd577: Reserved
1380+ * @mcudmq: Maximum Controller User Data Migration Queues indicates the
1381+ * maximum number of User Data Migration Queues supported by the
1382+ * controller.
1383+ * @mnsudmq: Maximum NVM Subsystem User Data Migration Queues indicates the
1384+ * maximum number of User Data Migration Queues supported by the NVM
1385+ * subsystem.
1386+ * @mcmr: Maximum CDQ Memory Ranges indicates the maximum number of
1387+ * memory ranges allowed to be specified by the PRP1 field of a
1388+ * Controller Data Queue command.
1389+ * @nmcmr: NVM Subsystem Maximum CDQ Memory Ranges indicates the maximum
1390+ * number of memory ranges for all Controller Data Queues in the
1391+ * NVM subsystem.
1392+ * @mcdqpc: Maximum Controller Data Queue PRP Count indicates the maximum
1393+ * number of PRPs allowed to be specified in the PRP list in the
1394+ * Controller Data Queue command.
1395+ * @rsvd588: Reserved
13631396 * @subnqn: NVM Subsystem NVMe Qualified Name, UTF-8 null terminated string
13641397 * @rsvd1024: Reserved
13651398 * @ioccsz: I/O Queue Command Capsule Supported Size, defines the maximum
@@ -1466,7 +1499,19 @@ struct nvme_id_ctrl {
14661499 __u8 maxdna [16 ];
14671500 __le32 maxcna ;
14681501 __le32 oaqd ;
1469- __u8 rsvd568 [200 ];
1502+ __u8 rsvd568 [2 ];
1503+ __u16 cmmrtd ;
1504+ __u16 nmmrtd ;
1505+ __u8 minmrtg ;
1506+ __u8 maxmrtg ;
1507+ __u8 trattr ;
1508+ __u8 rsvd577 ;
1509+ __u16 mcudmq ;
1510+ __u16 mnsudmq ;
1511+ __u16 mcmr ;
1512+ __u16 nmcmr ;
1513+ __u16 mcdqpc ;
1514+ __u8 rsvd588 [180 ];
14701515 char subnqn [NVME_NQN_LENGTH ];
14711516 __u8 rsvd1024 [768 ];
14721517
@@ -7082,6 +7127,20 @@ struct nvme_mi_vpd_hdr {
70827127 * Originator field does not match the
70837128 * Host NQN used by the DDC to connect
70847129 * to the CDC.
7130+ * @NVME_SC_INVALID_CONTROLER_DATA_QUEUE: This error indicates that the
7131+ * specified Controller Data Queue
7132+ * Identifier is invalid for the controller
7133+ * processing the command.
7134+ * @NVME_SC_NOT_ENOUGH_RESOURCES: This error indicates that there is not
7135+ * enough resources in the controller to
7136+ * process the command.
7137+ * @NVME_SC_CONTROLLER_SUSPENDED: The operation requested is not allowed if
7138+ * the specified controller is suspended.
7139+ * @NVME_SC_CONTROLLER_NOT_SUSPENDED: The operation requested is not allowed if
7140+ * the specified controller is not
7141+ * suspended.
7142+ * @NVME_SC_CONTROLLER_DATA_QUEUE_FULL: The controller detected that a
7143+ * Controller Data Queue became full.
70857144 * @NVME_SC_BAD_ATTRIBUTES: Conflicting Dataset Management Attributes
70867145 * @NVME_SC_INVALID_PI: Invalid Protection Information
70877146 * @NVME_SC_READ_ONLY: Attempted Write to Read Only Range
@@ -7339,6 +7398,15 @@ enum nvme_status_field {
73397398 NVME_SC_REQSTD_FUNCTION_DISABLED = 0x33 ,
73407399 NVME_SC_ZONEGRP_ORIGINATOR_INVLD = 0x34 ,
73417400
7401+ /*
7402+ * Command Set Specific - Live Migration
7403+ */
7404+ NVME_SC_INVALID_CONTROLER_DATA_QUEUE = 0x37 ,
7405+ NVME_SC_NOT_ENOUGH_RESOURCES = 0x38 ,
7406+ NVME_SC_CONTROLLER_SUSPENDED = 0x39 ,
7407+ NVME_SC_CONTROLLER_NOT_SUSPENDED = 0x3A ,
7408+ NVME_SC_CONTROLLER_DATA_QUEUE_FULL = 0x3B ,
7409+
73427410 /*
73437411 * I/O Command Set Specific - NVM commands:
73447412 */
@@ -7617,6 +7685,9 @@ enum nvme_admin_opcode {
76177685 * @NVME_IDENTIFY_CNS_CSI_ID_NS_DATA_STRUCTURE: I/O Command Set specific ID Namespace
76187686 * Data Structure for Allocated Namespace ID
76197687 * @NVME_IDENTIFY_CNS_COMMAND_SET_STRUCTURE: Base Specification 2.0a section 5.17.2.21
7688+ * @NVME_IDENTIFY_CNS_SUPPORTED_CTRL_STATE_FORMATS: Supported Controller State Formats
7689+ * identifying the supported NVMe Controller
7690+ * State data structures
76207691 */
76217692enum nvme_identify_cns {
76227693 NVME_IDENTIFY_CNS_NS = 0x00 ,
@@ -7643,6 +7714,7 @@ enum nvme_identify_cns {
76437714 NVME_IDENTIFY_CNS_CSI_ALLOCATED_NS_LIST = 0x1A ,
76447715 NVME_IDENTIFY_CNS_CSI_ID_NS_DATA_STRUCTURE = 0x1B ,
76457716 NVME_IDENTIFY_CNS_COMMAND_SET_STRUCTURE = 0x1C ,
7717+ NVME_IDENTIFY_CNS_SUPPORTED_CTRL_STATE_FORMATS = 0x20 ,
76467718};
76477719
76487720/**
0 commit comments