Commit 2076ab31 authored by Shuhei Matsumoto's avatar Shuhei Matsumoto Committed by Konrad Sztyber
Browse files

nvme: Add spdk_nvme_ctrlr_get_id() for multipath identification



ctrlr->cntlid is easy to get. However, there was no public API to
return ctrlr->cntlid yet.

As the following comment in lib/nvme/nvme_ctrlr.c,

  Fabrics controllers should already have CNTLID from the Connect command.

  If CNTLID from Connect doesn't match CNTLID in the Identify Controller data,
  trust the one from Connect.

ctrlr->cntlid is sufficiently reliable.

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


Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
parent 76062d47
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -1472,6 +1472,15 @@ struct spdk_pci_device *spdk_nvme_ctrlr_get_pci_device(struct spdk_nvme_ctrlr *c
 */
int32_t spdk_nvme_ctrlr_get_numa_id(struct spdk_nvme_ctrlr *ctrlr);

/**
 * Get the NVMe controller ID for the given controller.
 *
 * \param ctrlr Opaque handle to NVMe controller.
 *
 * \return ID of the NVMe controller.
 */
uint16_t spdk_nvme_ctrlr_get_id(struct spdk_nvme_ctrlr *ctrlr);

/**
 * Get the maximum data transfer size of a given NVMe controller.
 *
+1 −1
Original line number Diff line number Diff line
@@ -7,7 +7,7 @@ SPDK_ROOT_DIR := $(abspath $(CURDIR)/../..)
include $(SPDK_ROOT_DIR)/mk/spdk.common.mk

SO_VER := 14
SO_MINOR := 0
SO_MINOR := 1

C_SRCS = nvme_ctrlr_cmd.c nvme_ctrlr.c nvme_fabric.c nvme_ns_cmd.c \
	nvme_ns.c nvme_pcie_common.c nvme_pcie.c nvme_qpair.c nvme.c \
+6 −0
Original line number Diff line number Diff line
@@ -4730,6 +4730,12 @@ spdk_nvme_ctrlr_get_numa_id(struct spdk_nvme_ctrlr *ctrlr)
	}
}

uint16_t
spdk_nvme_ctrlr_get_id(struct spdk_nvme_ctrlr *ctrlr)
{
	return ctrlr->cntlid;
}

uint32_t
spdk_nvme_ctrlr_get_max_xfer_size(const struct spdk_nvme_ctrlr *ctrlr)
{
+1 −0
Original line number Diff line number Diff line
@@ -59,6 +59,7 @@
	spdk_nvme_ctrlr_get_num_ns;
	spdk_nvme_ctrlr_get_pci_device;
	spdk_nvme_ctrlr_get_numa_id;
	spdk_nvme_ctrlr_get_id;
	spdk_nvme_ctrlr_get_max_xfer_size;
	spdk_nvme_ctrlr_get_max_sges;
	spdk_nvme_ctrlr_is_active_ns;