Commit 38ac7146 authored by Krzysztof Karas's avatar Krzysztof Karas Committed by Jim Harris
Browse files

bdev/nvme: Dump initiator psk path and hostnqn to JSON config.



Save path to PSK file in nvme_ctrlr_opts structure to later
print that string as a part of JSON configuration.
Add hostnqn present in `spdk_nvme_ctrlr_opts` to JSON config.

Expand tls.sh test script and add missing PID assignments
to `nvmfpid` variable.

Change-Id: Ie60baf25d1b3d9cbe4d9ff381aabaa319dc2501b
Signed-off-by: default avatarKrzysztof Karas <krzysztof.karas@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/18956


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarBen Walker <ben@nvidia.com>
Reviewed-by: default avatarJim Harris <jim.harris@gmail.com>
Community-CI: Mellanox Build Bot
parent b4ba2c40
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -7933,8 +7933,12 @@ nvme_ctrlr_config_json(struct spdk_json_write_ctx *w,
	spdk_json_write_named_uint32(w, "reconnect_delay_sec", nvme_ctrlr->opts.reconnect_delay_sec);
	spdk_json_write_named_uint32(w, "fast_io_fail_timeout_sec",
				     nvme_ctrlr->opts.fast_io_fail_timeout_sec);
	if (nvme_ctrlr->opts.psk_path[0] != '\0') {
		spdk_json_write_named_string(w, "psk", nvme_ctrlr->opts.psk_path);
	}

	opts = spdk_nvme_ctrlr_get_opts(nvme_ctrlr->ctrlr);
	spdk_json_write_named_string(w, "hostnqn", opts->hostnqn);
	spdk_json_write_named_bool(w, "hdgst", opts->header_digest);
	spdk_json_write_named_bool(w, "ddgst", opts->data_digest);

+2 −0
Original line number Diff line number Diff line
@@ -43,6 +43,8 @@ struct nvme_ctrlr_opts {
	uint32_t reconnect_delay_sec;
	uint32_t fast_io_fail_timeout_sec;
	bool from_discovery_service;
	/* Path to the file containing PSK, used for dumping configuration. */
	char psk_path[PATH_MAX];
};

struct nvme_async_probe_ctx {
+6 −0
Original line number Diff line number Diff line
@@ -480,6 +480,12 @@ rpc_bdev_nvme_attach_controller(struct spdk_jsonrpc_request *request,
							     ctx->req.psk);
			goto cleanup;
		}
		rc = snprintf(ctx->req.bdev_opts.psk_path, sizeof(ctx->req.bdev_opts.psk_path), "%s", ctx->req.psk);
		if (rc < 0 || (size_t)rc >= sizeof(ctx->req.bdev_opts.psk_path)) {
			spdk_jsonrpc_send_error_response_fmt(request, -EINVAL, "Could not store PSK path: %s",
							     ctx->req.psk);
			goto cleanup;
		}
	}

	if (ctx->req.hostaddr) {
+26 −1
Original line number Diff line number Diff line
@@ -189,13 +189,38 @@ NOT setup_nvmf_tgt $key_long_path
killprocess $nvmfpid
chmod 0600 $key_long_path

# Run both applications just to get their JSON configs
nvmfappstart -m 0x2
setup_nvmf_tgt $key_long_path

$rootdir/build/examples/bdevperf -m 0x4 -z -r $bdevperf_rpc_sock -q 128 -o 4096 -w verify -t 10 &
bdevperf_pid=$!

trap 'cleanup; exit 1' SIGINT SIGTERM EXIT
waitforlisten $bdevperf_pid $bdevperf_rpc_sock
$rpc_py -s $bdevperf_rpc_sock bdev_nvme_attach_controller -b TLSTEST -t $TEST_TRANSPORT \
	-a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT -f ipv4 -n nqn.2016-06.io.spdk:cnode1 \
	-q nqn.2016-06.io.spdk:host1 --psk $key_long_path

tgtconf=$($rpc_py save_config)
bdevperfconf=$($rpc_py -s $bdevperf_rpc_sock save_config)

killprocess $bdevperf_pid
killprocess $nvmfpid

# Launch apps with configs
nvmfappstart -m 0x2 -c <(echo "$tgtconf")
run_bdevperf nqn.2016-06.io.spdk:cnode1 nqn.2016-06.io.spdk:host1 "$key_long_path"
$rootdir/build/examples/bdevperf -m 0x4 -z -r $bdevperf_rpc_sock -q 128 -o 4096 -w verify -t 10 \
	-c <(echo "$bdevperfconf") &
bdevperf_pid=$!
waitforlisten $bdevperf_pid $bdevperf_rpc_sock

# Run I/O
$rootdir/examples/bdev/bdevperf/bdevperf.py -t 20 -s $bdevperf_rpc_sock perform_tests

trap 'nvmftestfini; exit 1' SIGINT SIGTERM EXIT
killprocess $bdevperf_pid
killprocess $nvmfpid

trap - SIGINT SIGTERM EXIT
cleanup