iscsi/rpc: fix several bugs of set_iscsi_options
In python script: - timeout should be nop_timeout - min_connections_per_core was min_connections_per_session by mistake. - max_queue_depth was not included. - call_cmd was missing. - A space should be added after semicolon ":" In SPDK library: - type of options was not int32_t but int. Hence decode failed. - type of options in dump were not correct. Change-Id: Iaa79236c03d368cdf286a72c2386509ffa81530f Signed-off-by: Pawel Wodkowski <pawelx.wodkowski@intel.com> Reviewed-on: https://review.gerrithub.io/419553 Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Seth Howell <seth.howell5141@gmail.com> Reviewed-by: Paweł Niedźwiecki <pawelx.niedzwiecki@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Ziye Yang <optimistyzy@gmail.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
parent
39ad1e651a
commit
642697878f
@ -43,7 +43,7 @@
|
||||
static const struct spdk_json_object_decoder rpc_set_iscsi_opts_decoders[] = {
|
||||
{"auth_file", offsetof(struct spdk_iscsi_opts, authfile), spdk_json_decode_string, true},
|
||||
{"node_base", offsetof(struct spdk_iscsi_opts, nodebase), spdk_json_decode_string, true},
|
||||
{"timeout", offsetof(struct spdk_iscsi_opts, timeout), spdk_json_decode_int32, true},
|
||||
{"nop_timeout", offsetof(struct spdk_iscsi_opts, timeout), spdk_json_decode_int32, true},
|
||||
{"nop_in_interval", offsetof(struct spdk_iscsi_opts, nopininterval), spdk_json_decode_int32, true},
|
||||
{"no_discovery_auth", offsetof(struct spdk_iscsi_opts, no_discovery_auth), spdk_json_decode_bool, true},
|
||||
{"req_discovery_auth", offsetof(struct spdk_iscsi_opts, req_discovery_auth), spdk_json_decode_bool, true},
|
||||
|
@ -268,12 +268,12 @@ struct spdk_iscsi_poll_group {
|
||||
struct spdk_iscsi_opts {
|
||||
char *authfile;
|
||||
char *nodebase;
|
||||
int timeout;
|
||||
int nopininterval;
|
||||
int32_t timeout;
|
||||
int32_t nopininterval;
|
||||
bool no_discovery_auth;
|
||||
bool req_discovery_auth;
|
||||
bool req_discovery_auth_mutual;
|
||||
int discovery_auth_group;
|
||||
int32_t discovery_auth_group;
|
||||
uint32_t MaxSessions;
|
||||
uint32_t MaxConnectionsPerSession;
|
||||
uint32_t MaxConnections;
|
||||
@ -295,12 +295,12 @@ struct spdk_iscsi_globals {
|
||||
TAILQ_HEAD(, spdk_iscsi_init_grp) ig_head;
|
||||
TAILQ_HEAD(, spdk_iscsi_tgt_node) target_head;
|
||||
|
||||
int timeout;
|
||||
int nopininterval;
|
||||
int32_t timeout;
|
||||
int32_t nopininterval;
|
||||
bool no_discovery_auth;
|
||||
bool req_discovery_auth;
|
||||
bool req_discovery_auth_mutual;
|
||||
int discovery_auth_group;
|
||||
int32_t discovery_auth_group;
|
||||
|
||||
uint32_t MaxSessions;
|
||||
uint32_t MaxConnectionsPerSession;
|
||||
|
@ -1036,7 +1036,7 @@ spdk_iscsi_opts_info_json(struct spdk_json_write_ctx *w)
|
||||
|
||||
spdk_json_write_named_uint32(w, "error_recovery_level", g_spdk_iscsi.ErrorRecoveryLevel);
|
||||
|
||||
spdk_json_write_named_uint32(w, "timeout", g_spdk_iscsi.timeout);
|
||||
spdk_json_write_named_int32(w, "nop_timeout", g_spdk_iscsi.timeout);
|
||||
spdk_json_write_named_int32(w, "nop_in_interval", g_spdk_iscsi.nopininterval);
|
||||
|
||||
spdk_json_write_named_bool(w, "no_discovery_auth", g_spdk_iscsi.no_discovery_auth);
|
||||
@ -1045,8 +1045,8 @@ spdk_iscsi_opts_info_json(struct spdk_json_write_ctx *w)
|
||||
g_spdk_iscsi.req_discovery_auth_mutual);
|
||||
spdk_json_write_named_int32(w, "discovery_auth_group", g_spdk_iscsi.discovery_auth_group);
|
||||
|
||||
spdk_json_write_named_int32(w, "min_connections_per_core",
|
||||
spdk_iscsi_conn_get_min_per_core());
|
||||
spdk_json_write_named_uint32(w, "min_connections_per_core",
|
||||
spdk_iscsi_conn_get_min_per_core());
|
||||
|
||||
spdk_json_write_object_end(w);
|
||||
}
|
||||
|
@ -443,6 +443,7 @@ if __name__ == "__main__":
|
||||
p.set_defaults(func=apply_firmware)
|
||||
|
||||
# iSCSI
|
||||
@call_cmd
|
||||
def set_iscsi_options(args):
|
||||
rpc.iscsi.set_iscsi_options(
|
||||
args.client,
|
||||
@ -455,13 +456,14 @@ if __name__ == "__main__":
|
||||
req_discovery_auth_mutual=args.req_discovery_auth_mutual,
|
||||
discovery_auth_group=args.discovery_auth_group,
|
||||
max_sessions=args.max_sessions,
|
||||
max_queue_depth=args.max_queue_depth,
|
||||
max_connections_per_session=args.max_connections_per_session,
|
||||
default_time2wait=args.default_time2wait,
|
||||
default_time2retain=args.default_time2retain,
|
||||
immediate_data=args.immediate_data,
|
||||
error_recovery_level=args.error_recovery_level,
|
||||
allow_duplicated_isid=args.allow_duplicated_isid,
|
||||
min_connections_per_session=args.min_connections_per_session)
|
||||
min_connections_per_core=args.min_connections_per_core)
|
||||
|
||||
p = subparsers.add_parser('set_iscsi_options', help="""Set options of iSCSI subsystem""")
|
||||
p.add_argument('-f', '--auth-file', help='Path to CHAP shared secret file for discovery session')
|
||||
@ -476,13 +478,14 @@ if __name__ == "__main__":
|
||||
p.add_argument('-g', '--discovery-auth-group', help="""Authentication group ID for discovery session.
|
||||
*** Authentication group must be precreated ***""", type=int)
|
||||
p.add_argument('-a', '--max-sessions', help='Maximum number of sessions in the host.', type=int)
|
||||
p.add_argument('-q', '--max-queue-depth', help='Max number of outstanding I/Os per queue.', type=int)
|
||||
p.add_argument('-c', '--max-connections-per-session', help='Negotiated parameter, MaxConnections.', type=int)
|
||||
p.add_argument('-w', '--default-time2wait', help='Negotiated parameter, DefaultTime2Wait.', type=int)
|
||||
p.add_argument('-v', '--default-time2retain', help='Negotiated parameter, DefaultTime2Retain.', type=int)
|
||||
p.add_argument('-i', '--immediate-data', help='Negotiated parameter, ImmediateData.', action='store_true')
|
||||
p.add_argument('-l', '--error-recovery-level', help='Negotiated parameter, ErrorRecoveryLevel', type=int)
|
||||
p.add_argument('-p', '--allow-duplicated-isid', help='Allow duplicated initiator session ID.', action='store_true')
|
||||
p.add_argument('-u', '--min-connections-per-session', help='Allocation unit of connections per core', type=int)
|
||||
p.add_argument('-u', '--min-connections-per-core', help='Allocation unit of connections per core', type=int)
|
||||
p.set_defaults(func=set_iscsi_options)
|
||||
|
||||
@call_cmd
|
||||
|
@ -11,13 +11,14 @@ def set_iscsi_options(
|
||||
req_discovery_auth_mutual=None,
|
||||
discovery_auth_group=None,
|
||||
max_sessions=None,
|
||||
max_queue_depth=None,
|
||||
max_connections_per_session=None,
|
||||
default_time2wait=None,
|
||||
default_time2retain=None,
|
||||
immediate_data=None,
|
||||
error_recovery_level=None,
|
||||
allow_duplicated_isid=None,
|
||||
min_connections_per_session=None):
|
||||
min_connections_per_core=None):
|
||||
"""Set iSCSI target options.
|
||||
|
||||
Args:
|
||||
@ -29,14 +30,15 @@ def set_iscsi_options(
|
||||
req_discovery_auth: CHAP for discovery session should be required
|
||||
req_discovery_auth_mutual: CHAP for discovery session should be mutual
|
||||
discovery_auth_group: Authentication group ID for discovery session
|
||||
max_sessions:Maximum number of sessions in the host
|
||||
max_connections_per_session:Negotiated parameter, MaxConnections
|
||||
max_sessions: Maximum number of sessions in the host
|
||||
max_queue_depth: Maximum number of outstanding I/Os per queue
|
||||
max_connections_per_session: Negotiated parameter, MaxConnections
|
||||
default_time2wait: Negotiated parameter, DefaultTime2Wait
|
||||
default_time2retain: Negotiated parameter, DefaultTime2Retain
|
||||
immediate_data: Negotiated parameter, ImmediateData
|
||||
error_recovery_level: Negotiated parameter, ErrorRecoveryLevel
|
||||
allow_duplicated_isid: Allow duplicated initiator session ID
|
||||
min_connections_per_session: Allocation unit of connections per core
|
||||
min_connections_per_core: Allocation unit of connections per core
|
||||
|
||||
Returns:
|
||||
True or False
|
||||
@ -61,6 +63,8 @@ def set_iscsi_options(
|
||||
params['discovery_auth_group'] = discovery_auth_group
|
||||
if max_sessions:
|
||||
params['max_sessions'] = max_sessions
|
||||
if max_queue_depth:
|
||||
params['max_queue_depth'] = max_queue_depth
|
||||
if max_connections_per_session:
|
||||
params['max_connections_per_session'] = max_connections_per_session
|
||||
if default_time2wait:
|
||||
@ -73,8 +77,8 @@ def set_iscsi_options(
|
||||
params['error_recovery_level'] = error_recovery_level
|
||||
if allow_duplicated_isid:
|
||||
params['allow_duplicated_isid'] = allow_duplicated_isid
|
||||
if min_connections_per_session:
|
||||
params['min_connections_per_session'] = min_connections_per_session
|
||||
if min_connections_per_core:
|
||||
params['min_connections_per_core'] = min_connections_per_core
|
||||
|
||||
return client.call('set_iscsi_options', params)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user