Commit 2e10c84c authored by Shuhei Matsumoto's avatar Shuhei Matsumoto Committed by Jim Harris
Browse files

nvmf: Expose DIF type of namespace to host again

We disabled exposing DIF type of namespaces to host because nvmf library
did not support PRACT.
https://github.com/spdk/spdk/commit/a438718fc25a5298f0bfc9daf2be0abc885b54be



nvmf library support PRACT now.

Let's expose DIF type of namespaces to host again.

Signed-off-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I9c30c3c50791ade18fb46c2be807984c934d3788
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25438


Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarJim Harris <jim.harris@nvidia.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
parent 38b931b2
Loading
Loading
Loading
Loading
+19 −4
Original line number Diff line number Diff line
@@ -142,10 +142,25 @@ nvmf_bdev_ctrlr_identify_ns(struct spdk_nvmf_ns *ns, struct spdk_nvme_ns_data *n
			nsdata->mc.extended = 1;
			nsdata->mc.pointer = 0;
			nsdata->dps.md_start = spdk_bdev_desc_is_dif_head_of_md(desc);
			/* NVMf library doesn't process PRACT and PRCHK flags, we
			 * leave the use of extended LBA buffer to users.
			 */

			switch (spdk_bdev_get_dif_type(bdev)) {
			case SPDK_DIF_TYPE1:
				nsdata->dpc.pit1 = 1;
				nsdata->dps.pit = SPDK_NVME_FMT_NVM_PROTECTION_TYPE1;
				break;
			case SPDK_DIF_TYPE2:
				nsdata->dpc.pit2 = 1;
				nsdata->dps.pit = SPDK_NVME_FMT_NVM_PROTECTION_TYPE2;
				break;
			case SPDK_DIF_TYPE3:
				nsdata->dpc.pit3 = 1;
				nsdata->dps.pit = SPDK_NVME_FMT_NVM_PROTECTION_TYPE3;
				break;
			default:
				SPDK_DEBUGLOG(nvmf, "Protection Disabled\n");
				nsdata->dps.pit = SPDK_NVME_FMT_NVM_PROTECTION_DISABLE;
				break;
			}
		}
	} else {
		nsdata->lbaf[0].ms = 0;
+2 −1
Original line number Diff line number Diff line
@@ -582,7 +582,8 @@ test_nvmf_bdev_ctrlr_identify_ns(void)
	CU_ASSERT(nsdata.nacwu == 0);
	CU_ASSERT(nsdata.lbaf[0].lbads == spdk_u32log2(4096));
	CU_ASSERT(nsdata.lbaf[0].ms == 512);
	CU_ASSERT(nsdata.dps.pit == SPDK_NVME_FMT_NVM_PROTECTION_DISABLE);
	CU_ASSERT(nsdata.dpc.pit1 == 1);
	CU_ASSERT(nsdata.dps.pit == SPDK_NVME_FMT_NVM_PROTECTION_TYPE1);
	CU_ASSERT(nsdata.noiob == SPDK_BDEV_IO_NUM_CHILD_IOV);
	CU_ASSERT(nsdata.nmic.can_share == 1);
	CU_ASSERT(nsdata.nsrescap.rescap.persist == 1);