Commit fa509b84 authored by Marcin Spiewak's avatar Marcin Spiewak Committed by Tomasz Zawadzki
Browse files

nvme/identify: add option to set socket implementation



Added option to set socket implementation.
Now, using -S option, the user can specify which socket
implementation (e.g. uring) shall be used when
a socket is created to connect to remote target.
Default socket implementation is posix.

Fixes #3144

Change-Id: I104fb957980ce26646c59101a6d3b589a0554c94
Signed-off-by: default avatarMarcin Spiewak <marcin.spiewak@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/20501


Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Mellanox Build Bot
parent 03593c44
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@
#include "spdk/string.h"
#include "spdk/util.h"
#include "spdk/uuid.h"
#include "spdk/sock.h"

#define MAX_DISCOVERY_LOG_ENTRIES	((uint64_t)1000)

@@ -2617,6 +2618,7 @@ usage(const char *program_name)
	printf(" -x         print hex dump of raw data\n");
	printf(" -z         For NVMe Zoned Namespaces, dump the full zone report (-z) or the first N entries (-z N)\n");
	printf(" -V         enumerate VMD\n");
	printf(" -S         socket implementation, e.g. -S uring (default is posix)\n");
	printf(" -H         show this usage\n");
}

@@ -2629,7 +2631,7 @@ parse_args(int argc, char **argv)
	spdk_nvme_trid_populate_transport(&g_trid, SPDK_NVME_TRANSPORT_PCIE);
	snprintf(g_trid.subnqn, sizeof(g_trid.subnqn), "%s", SPDK_NVMF_DISCOVERY_NQN);

	while ((op = getopt(argc, argv, "d:gi:op:r:v:xz::HL:V")) != -1) {
	while ((op = getopt(argc, argv, "d:gi:op:r:v:xz::HL:S:V")) != -1) {
		switch (op) {
		case 'd':
			g_dpdk_mem = spdk_strtol(optarg, 10);
@@ -2719,6 +2721,13 @@ parse_args(int argc, char **argv)
		case 'V':
			g_vmd = true;
			break;
		case 'S':
			rc = spdk_sock_set_default_impl(optarg);
			if (rc < 0) {
				fprintf(stderr, "Invalid socket implementation\n");
				exit(EXIT_FAILURE);
			}
			break;
		default:
			usage(argv[0]);
			return 1;