Spdk/test/unit/lib/nvme
Niklas Cassel c4d1b7d57a nvme: add new state to get Identify IOCS Specific Namespace data structs
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>
2020-09-30 07:26:04 +00:00
..
nvme_ctrlr_cmd.c ut: make use of CUnit macro to reduce duplications 2020-04-02 14:50:12 +00:00
nvme_ctrlr_ocssd_cmd.c ut: make use of CUnit macro to reduce duplications 2020-04-02 14:50:12 +00:00
nvme_ctrlr.c nvme: add new state to get Identify IOCS Specific Namespace data structs 2020-09-30 07:26:04 +00:00
nvme_ns_cmd.c ut: make use of CUnit macro to reduce duplications 2020-04-02 14:50:12 +00:00
nvme_ns_ocssd_cmd.c ut: make use of CUnit macro to reduce duplications 2020-04-02 14:50:12 +00:00
nvme_ns.c nvme: add new state to get Identify IOCS Specific Namespace data structs 2020-09-30 07:26:04 +00:00
nvme_pcie.c lib/nvme: remove spdk prefix from internal headers. 2020-06-01 13:07:30 +00:00
nvme_poll_group.c lib/nvme: switch poll group to use connect/disconnect semantics. 2020-04-22 19:06:26 +00:00
nvme_qpair.c lib/nvme: fix mem leak in req submit. 2020-09-02 07:38:38 +00:00
nvme_quirks.c env: add spdk_pci_id->class_id 2020-07-23 20:48:47 +00:00
nvme_rdma.c nvme/rdma: Check that SGL descriptors fit into ICD 2020-09-16 07:58:13 +00:00
nvme_tcp.c nvme/tcp: Process poll_group when waiting for icresp 2020-09-29 09:35:47 +00:00
nvme_uevent.c nvme: read all uevents 2020-08-24 07:38:33 +00:00
nvme.c nvme/tcp: Process poll_group when waiting for icresp 2020-09-29 09:35:47 +00:00
Makefile test/unit: add poll_group unit tests. 2020-04-07 08:38:40 +00:00