Commit 06beb024 authored by Shuhei Matsumoto's avatar Shuhei Matsumoto Committed by Jim Harris
Browse files

iscsi/rpc&test/iscsi_tgt: get iSCSI global params



SPDK does not provide casual way to get iSCSI global parameters
set by iSCSI.conf. Hence test/iscsi_tgt have to use hard-coded
value for iSCSI target's nodebase.

NVMeOF provide similar JSON-RPC dump_nvmf_subsystem().

Change-Id: I1a53572f707e83cfd18369475b2565c6390a4d2d
Signed-off-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-on: https://review.gerrithub.io/391323


Tested-by: default avatarSPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
parent 804f6ce4
Loading
Loading
Loading
Loading
+78 −0
Original line number Diff line number Diff line
@@ -971,3 +971,81 @@ spdk_rpc_get_iscsi_connections(struct spdk_jsonrpc_request *request,
	spdk_jsonrpc_end_result(request, w);
}
SPDK_RPC_REGISTER("get_iscsi_connections", spdk_rpc_get_iscsi_connections)

static void
spdk_rpc_get_iscsi_global_params(struct spdk_jsonrpc_request *request,
				 const struct spdk_json_val *params)
{
	struct spdk_json_write_ctx *w;

	if (params != NULL) {
		spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INVALID_PARAMS,
						 "get_iscsi_global_params requires no parameters");
		return;
	}

	w = spdk_jsonrpc_begin_result(request);
	if (w == NULL) {
		return;
	}

	spdk_json_write_object_begin(w);

	spdk_json_write_name(w, "auth_file");
	spdk_json_write_string(w, g_spdk_iscsi.authfile);

	spdk_json_write_name(w, "node_base");
	spdk_json_write_string(w, g_spdk_iscsi.nodebase);

	spdk_json_write_name(w, "max_sessions");
	spdk_json_write_uint32(w, g_spdk_iscsi.MaxSessions);

	spdk_json_write_name(w, "max_connections_per_session");
	spdk_json_write_uint32(w, g_spdk_iscsi.MaxConnectionsPerSession);

	spdk_json_write_name(w, "max_queue_depth");
	spdk_json_write_uint32(w, g_spdk_iscsi.MaxQueueDepth);

	spdk_json_write_name(w, "default_time2wait");
	spdk_json_write_uint32(w, g_spdk_iscsi.DefaultTime2Wait);

	spdk_json_write_name(w, "immediate_data");
	spdk_json_write_bool(w, g_spdk_iscsi.ImmediateData);

	spdk_json_write_name(w, "allow_duplicated_isid");
	spdk_json_write_bool(w, g_spdk_iscsi.AllowDuplicateIsid);

	spdk_json_write_name(w, "error_recovery_level");
	spdk_json_write_uint32(w, g_spdk_iscsi.ErrorRecoveryLevel);

	spdk_json_write_name(w, "timeout");
	spdk_json_write_int32(w, g_spdk_iscsi.timeout);

	spdk_json_write_name(w, "flush_timeout");
	spdk_json_write_uint64(w, g_spdk_iscsi.flush_timeout);

	spdk_json_write_name(w, "nop_in_interval");
	spdk_json_write_int32(w, g_spdk_iscsi.nopininterval);

	spdk_json_write_name(w, "discovery_auth_method");
	if (g_spdk_iscsi.no_discovery_auth != 0) {
		spdk_json_write_string(w, "none");
	} else if (g_spdk_iscsi.req_discovery_auth == 0) {
		spdk_json_write_string(w, "auto");
	} else if (g_spdk_iscsi.req_discovery_auth_mutual != 0) {
		spdk_json_write_string(w, "chap mutual");
	} else {
		spdk_json_write_string(w, "chap");
	}

	spdk_json_write_name(w, "discovery_auth_group");
	if (g_spdk_iscsi.discovery_auth_group == 0) {
		spdk_json_write_string(w, "none");
	} else {
		spdk_json_write_int32(w, g_spdk_iscsi.discovery_auth_group);
	}
	spdk_json_write_object_end(w);

	spdk_jsonrpc_end_result(request, w);
}
SPDK_RPC_REGISTER("get_iscsi_global_params", spdk_rpc_get_iscsi_global_params)
+7 −0
Original line number Diff line number Diff line
@@ -538,6 +538,13 @@ p = subparsers.add_parser('get_iscsi_connections', help='Display iSCSI connectio
p.set_defaults(func=get_iscsi_connections)


def get_iscsi_global_params(args):
    print_dict(jsonrpc_call('get_iscsi_global_params'))

p = subparsers.add_parser('get_iscsi_global_params', help='Display iSCSI global parameters')
p.set_defaults(func=get_iscsi_global_params)


def get_scsi_devices(args):
    print_dict(jsonrpc_call('get_scsi_devices'))