Commit 7a8840c0 authored by Daniel Verkamp's avatar Daniel Verkamp Committed by Jim Harris
Browse files

nvme/identify: convert NVMe-oF to -r TRID format



Change-Id: I620331e2a865d399bddf2e5759f0a832f9c2e86b
Signed-off-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
parent e464823a
Loading
Loading
Loading
Loading
+16 −32
Original line number Diff line number Diff line
@@ -873,9 +873,15 @@ usage(const char *program_name)
	printf("%s [options]", program_name);
	printf("\n");
	printf("options:\n");
	printf(" -a addr    address of NVMe over Fabrics discovery service\n");
	printf(" -s service service ID for NVMe over Fabrics discovery service\n");
	printf(" -n nqn     NQN of NVMe over Fabrics discovery service\n");
	printf(" -r trid    remote NVMe over Fabrics target address\n");
	printf("    Format: 'key:value [key:value] ...'\n");
	printf("    Keys:\n");
	printf("     trtype      Transport type (e.g. RDMA)\n");
	printf("     adrfam      Address family (e.g. IPv4, IPv6)\n");
	printf("     traddr      Transport address (e.g. 192.168.100.8)\n");
	printf("     trsvcid     Transport service identifier (e.g. 4420)\n");
	printf("     subnqn      Subsystem NQN (default: %s)\n", SPDK_NVMF_DISCOVERY_NQN);
	printf("    Example: -r 'trtype:RDMA adrfam:IPv4 traddr:192.168.100.8 trsvcid:4420'\n");

	spdk_tracelog_usage(stdout, "-t");

@@ -892,7 +898,7 @@ parse_args(int argc, char **argv)
	g_trid.trtype = SPDK_NVME_TRANSPORT_PCIE;
	snprintf(g_trid.subnqn, sizeof(g_trid.subnqn), "%s", SPDK_NVMF_DISCOVERY_NQN);

	while ((op = getopt(argc, argv, "a:n:s:t:xH")) != -1) {
	while ((op = getopt(argc, argv, "r:t:xH")) != -1) {
		switch (op) {
		case 'x':
			g_hex_dump = true;
@@ -911,14 +917,11 @@ parse_args(int argc, char **argv)
			return 0;
#endif
			break;
		case 'a':
			snprintf(g_trid.traddr, sizeof(g_trid.traddr), "%s", optarg);
			break;
		case 's':
			snprintf(g_trid.trsvcid, sizeof(g_trid.trsvcid), "%s", optarg);
			break;
		case 'n':
			snprintf(g_trid.subnqn, sizeof(g_trid.subnqn), "%s", optarg);
		case 'r':
			if (spdk_nvme_transport_id_parse(&g_trid, optarg) != 0) {
				fprintf(stderr, "Error parsing transport address\n");
				return 1;
			}
			break;
		case 'H':
		default:
@@ -927,14 +930,6 @@ parse_args(int argc, char **argv)
		}
	}

	if ((strlen(g_trid.traddr) == 0) || (strlen(g_trid.trsvcid) == 0) ||
	    (strlen(g_trid.subnqn) == 0)) {
		return 0;
	}

	g_trid.trtype = SPDK_NVME_TRANSPORT_RDMA;
	g_trid.adrfam = SPDK_NVMF_ADRFAM_IPV4;

	optind = 1;

	return 0;
@@ -966,7 +961,6 @@ static const char *ealargs[] = {
int main(int argc, char **argv)
{
	int				rc;
	struct spdk_nvme_transport_id	*tr_id = NULL;

	rc = parse_args(argc, argv);
	if (rc != 0) {
@@ -982,18 +976,8 @@ int main(int argc, char **argv)
	}

	rc = 0;
	if (g_trid.trtype == SPDK_NVME_TRANSPORT_RDMA) {
	if (spdk_nvme_probe(&g_trid, NULL, probe_cb, attach_cb, NULL) != 0) {
		fprintf(stderr, "spdk_nvme_probe() failed\n");
		}
	}

	if ((g_trid.trtype == SPDK_NVME_TRANSPORT_PCIE) && (strlen(g_trid.traddr) != 0)) {
		tr_id = &g_trid;
	}

	if (spdk_nvme_probe(tr_id, NULL, probe_cb, attach_cb, NULL) != 0) {
		fprintf(stderr, "spdk_nvme_probe() failed\n");
		rc = 1;
	}

+1 −1
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@ fi
timing_enter identify
$rootdir/examples/nvme/identify/identify
for bdf in $(linux_iter_pci 0108); do
	$rootdir/examples/nvme/identify/identify -a ${bdf}
	$rootdir/examples/nvme/identify/identify -r "trtype:PCIe traddr:${bdf}"
done
timing_exit identify

+12 −2
Original line number Diff line number Diff line
@@ -31,8 +31,18 @@ bdevs="$bdevs $($rpc_py construct_malloc_bdev $MALLOC_BDEV_SIZE $MALLOC_BLOCK_SI

$rpc_py construct_nvmf_subsystem Virtual nqn.2016-06.io.spdk:cnode1 'transport:RDMA traddr:192.168.100.8 trsvcid:4420' '' -s SPDK00000000000001 -n "$bdevs"

$rootdir/examples/nvme/identify/identify -a "$NVMF_FIRST_TARGET_IP" -s "$NVMF_PORT" -n nqn.2014-08.org.nvmexpress.discovery -t all
$rootdir/examples/nvme/identify/identify -a "$NVMF_FIRST_TARGET_IP" -s "$NVMF_PORT" -n nqn.2016-06.io.spdk:cnode1 -t all
$rootdir/examples/nvme/identify/identify -r "\
        trtype:RDMA \
        adrfam:IPv4 \
        traddr:$NVMF_FIRST_TARGET_IP \
        trsvcid:$NVMF_PORT \
        subnqn:nqn.2014-08.org.nvmexpress.discovery" -t all
$rootdir/examples/nvme/identify/identify -r "\
        trtype:RDMA \
        adrfam:IPv4 \
        traddr:$NVMF_FIRST_TARGET_IP \
        trsvcid:$NVMF_PORT \
        subnqn:nqn.2016-06.io.spdk:cnode1" -t all
sync
$rpc_py delete_nvmf_subsystem nqn.2016-06.io.spdk:cnode1

+6 −1
Original line number Diff line number Diff line
@@ -43,7 +43,12 @@ echo -n $NVMF_PORT > /sys/kernel/config/nvmet/ports/1/addr_trsvcid

ln -s /sys/kernel/config/nvmet/subsystems/$subsystemname /sys/kernel/config/nvmet/ports/1/subsystems/$subsystemname

$rootdir/examples/nvme/identify/identify -a "$NVMF_FIRST_TARGET_IP" -s "$NVMF_PORT" -n nqn.2014-08.org.nvmexpress.discovery -t all
$rootdir/examples/nvme/identify/identify -r "\
	trtype:RDMA \
	adrfam:IPv4 \
	traddr:$NVMF_FIRST_TARGET_IP \
	trsvcid:$NVMF_PORT \
	subnqn:nqn.2014-08.org.nvmexpress.discovery" -t all

rm -rf /sys/kernel/config/nvmet/ports/1/subsystems/$subsystemname