c4d1b7d57a
Add a new state in the SPDK NVMe state machine in order to fetch I/O Command Set Specific Namespace data structures. Right now there is only support for the Zoned Namespace Command Set Specific Identify Namespace data structure. The NVM Command Set Specific Identify Namespace data structure is all zeroes right now, reserved for future use. The Key Value Command Set Identify Namespace data structure is not all zeroes, however, adding support for Key Value is outside the scope of this patch. The new NVME_CTRLR_STATE_IDENTIFY_NS_IOCS_SPECIFIC state is added after the NVME_CTRLR_STATE_IDENTIFY_ID_DESCS state. This is because we need to have fetched the identifiers in the desc list in order to know which command set a namespace belongs to. A slightly nicer design might have been to refactor the NVMe state machine to first fetch the id desc list, then the identify namespace struct, and finally the identify IOCS specific namespace struct. However, since this would have required a lot of changes, it didn't really seem justified. Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com> Change-Id: I62cbc533c2c3eec1ccf0ba9b1c414d5a70919cff Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4368 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> |
||
---|---|---|
.. | ||
Makefile | ||
nvme_ctrlr_cmd.c | ||
nvme_ctrlr_ocssd_cmd.c | ||
nvme_ctrlr.c | ||
nvme_cuse.c | ||
nvme_cuse.h | ||
nvme_fabric.c | ||
nvme_internal.h | ||
nvme_io_msg.c | ||
nvme_io_msg.h | ||
nvme_ns_cmd.c | ||
nvme_ns_ocssd_cmd.c | ||
nvme_ns.c | ||
nvme_opal_internal.h | ||
nvme_opal.c | ||
nvme_pcie.c | ||
nvme_poll_group.c | ||
nvme_qpair.c | ||
nvme_quirks.c | ||
nvme_rdma.c | ||
nvme_tcp.c | ||
nvme_transport.c | ||
nvme_uevent.c | ||
nvme_uevent.h | ||
nvme.c | ||
spdk_nvme.map |