Lines Matching defs:opts

295 #define NUM_PDU_PER_CONNECTION(opts)	(2 * (opts->MaxQueueDepth +	\
296 opts->MaxLargeDataInPerConnection + \
297 2 * opts->MaxR2TPerConnection + 8))
298 #define PDU_POOL_SIZE(opts) (opts->MaxSessions * NUM_PDU_PER_CONNECTION(opts))
299 #define IMMEDIATE_DATA_POOL_SIZE(opts) (opts->MaxSessions * 128)
300 #define DATA_OUT_POOL_SIZE(opts) (opts->MaxSessions * MAX_DATA_OUT_PER_CONNECTION)
303 iscsi_opts_init(struct spdk_iscsi_opts *opts)
305 opts->MaxSessions = DEFAULT_MAX_SESSIONS;
306 opts->MaxConnectionsPerSession = DEFAULT_MAX_CONNECTIONS_PER_SESSION;
307 opts->MaxQueueDepth = DEFAULT_MAX_QUEUE_DEPTH;
308 opts->DefaultTime2Wait = DEFAULT_DEFAULTTIME2WAIT;
309 opts->DefaultTime2Retain = DEFAULT_DEFAULTTIME2RETAIN;
310 opts->FirstBurstLength = SPDK_ISCSI_FIRST_BURST_LENGTH;
311 opts->ImmediateData = DEFAULT_IMMEDIATEDATA;
312 opts->AllowDuplicateIsid = false;
313 opts->ErrorRecoveryLevel = DEFAULT_ERRORRECOVERYLEVEL;
314 opts->timeout = DEFAULT_TIMEOUT;
315 opts->nopininterval = DEFAULT_NOPININTERVAL;
316 opts->disable_chap = false;
317 opts->require_chap = false;
318 opts->mutual_chap = false;
319 opts->chap_group = 0;
320 opts->authfile = NULL;
321 opts->nodebase = NULL;
322 opts->MaxLargeDataInPerConnection = DEFAULT_MAX_LARGE_DATAIN_PER_CONNECTION;
323 opts->MaxR2TPerConnection = DEFAULT_MAXR2T;
324 opts->pdu_pool_size = PDU_POOL_SIZE(opts);
325 opts->immediate_data_pool_size = IMMEDIATE_DATA_POOL_SIZE(opts);
326 opts->data_out_pool_size = DATA_OUT_POOL_SIZE(opts);
332 struct spdk_iscsi_opts *opts;
334 opts = calloc(1, sizeof(*opts));
335 if (!opts) {
340 iscsi_opts_init(opts);
342 return opts;
346 iscsi_opts_free(struct spdk_iscsi_opts *opts)
348 free(opts->authfile);
349 free(opts->nodebase);
350 free(opts);
409 iscsi_opts_verify(struct spdk_iscsi_opts *opts)
411 if (!opts->nodebase) {
412 opts->nodebase = strdup(SPDK_ISCSI_DEFAULT_NODEBASE);
413 if (opts->nodebase == NULL) {
419 if (opts->MaxSessions == 0 || opts->MaxSessions > 65535) {
421 opts->MaxSessions);
425 if (opts->MaxConnectionsPerSession == 0 || opts->MaxConnectionsPerSession > 65535) {
427 opts->MaxConnectionsPerSession);
431 if (opts->MaxQueueDepth == 0 || opts->MaxQueueDepth > 256) {
433 opts->MaxQueueDepth);
437 if (opts->DefaultTime2Wait > 3600) {
439 opts->DefaultTime2Wait);
443 if (opts->DefaultTime2Retain > 3600) {
445 opts->DefaultTime2Retain);
449 if (opts->FirstBurstLength >= SPDK_ISCSI_MIN_FIRST_BURST_LENGTH) {
450 if (opts->FirstBurstLength > SPDK_ISCSI_MAX_BURST_LENGTH) {
452 opts->FirstBurstLength, SPDK_ISCSI_MAX_BURST_LENGTH);
457 opts->FirstBurstLength, SPDK_ISCSI_MIN_FIRST_BURST_LENGTH);
461 if (opts->ErrorRecoveryLevel > 2) {
462 SPDK_ERRLOG("ErrorRecoveryLevel %d is not supported.\n", opts->ErrorRecoveryLevel);
466 if (opts->timeout < 0) {
467 SPDK_ERRLOG("%d is invalid. timeout must not be less than 0\n", opts->timeout);
471 if (opts->nopininterval < 0 || opts->nopininterval > MAX_NOPININTERVAL) {
473 opts->nopininterval, MAX_NOPININTERVAL);
477 if (!iscsi_check_chap_params(opts->disable_chap, opts->require_chap,
478 opts->mutual_chap, opts->chap_group)) {
479 SPDK_ERRLOG("CHAP params in opts are illegal combination\n");
483 if (opts->MaxLargeDataInPerConnection == 0) {
488 if (opts->MaxR2TPerConnection == 0) {
493 if (opts->pdu_pool_size == 0) {
498 if (opts->immediate_data_pool_size == 0) {
503 if (opts->data_out_pool_size == 0) {
512 iscsi_set_global_params(struct spdk_iscsi_opts *opts)
516 rc = iscsi_opts_verify(opts);
522 if (opts->authfile != NULL) {
523 g_iscsi.authfile = strdup(opts->authfile);
525 SPDK_ERRLOG("failed to strdup for auth file %s\n", opts->authfile);
530 g_iscsi.nodebase = strdup(opts->nodebase);
532 SPDK_ERRLOG("failed to strdup for nodebase %s\n", opts->nodebase);
536 g_iscsi.MaxSessions = opts->MaxSessions;
537 g_iscsi.MaxConnectionsPerSession = opts->MaxConnectionsPerSession;
538 g_iscsi.MaxQueueDepth = opts->MaxQueueDepth;
539 g_iscsi.DefaultTime2Wait = opts->DefaultTime2Wait;
540 g_iscsi.DefaultTime2Retain = opts->DefaultTime2Retain;
541 g_iscsi.FirstBurstLength = opts->FirstBurstLength;
542 g_iscsi.ImmediateData = opts->ImmediateData;
543 g_iscsi.AllowDuplicateIsid = opts->AllowDuplicateIsid;
544 g_iscsi.ErrorRecoveryLevel = opts->ErrorRecoveryLevel;
545 g_iscsi.timeout = opts->timeout;
546 g_iscsi.nopininterval = opts->nopininterval;
547 g_iscsi.disable_chap = opts->disable_chap;
548 g_iscsi.require_chap = opts->require_chap;
549 g_iscsi.mutual_chap = opts->mutual_chap;
550 g_iscsi.chap_group = opts->chap_group;
551 g_iscsi.MaxLargeDataInPerConnection = opts->MaxLargeDataInPerConnection;
552 g_iscsi.MaxR2TPerConnection = opts->MaxR2TPerConnection;
553 g_iscsi.pdu_pool_size = opts->pdu_pool_size;
554 g_iscsi.immediate_data_pool_size = opts->immediate_data_pool_size;
555 g_iscsi.data_out_pool_size = opts->data_out_pool_size;