Lines Matching refs:param

112 	struct iscsi_param *param;  in iscsi_print_params()  local
114 list_for_each_entry(param, &param_list->param_list, p_list) in iscsi_print_params()
115 pr_debug("%s: %s\n", param->name, param->value); in iscsi_print_params()
122 struct iscsi_param *param = NULL; in iscsi_set_default_param() local
124 param = kzalloc(sizeof(struct iscsi_param), GFP_KERNEL); in iscsi_set_default_param()
125 if (!param) { in iscsi_set_default_param()
129 INIT_LIST_HEAD(&param->p_list); in iscsi_set_default_param()
131 param->name = kstrdup(name, GFP_KERNEL); in iscsi_set_default_param()
132 if (!param->name) { in iscsi_set_default_param()
137 param->value = kstrdup(value, GFP_KERNEL); in iscsi_set_default_param()
138 if (!param->value) { in iscsi_set_default_param()
143 param->phase = phase; in iscsi_set_default_param()
144 param->scope = scope; in iscsi_set_default_param()
145 param->sender = sender; in iscsi_set_default_param()
146 param->use = use; in iscsi_set_default_param()
147 param->type_range = type_range; in iscsi_set_default_param()
149 switch (param->type_range) { in iscsi_set_default_param()
151 param->type = TYPE_BOOL_AND; in iscsi_set_default_param()
154 param->type = TYPE_BOOL_OR; in iscsi_set_default_param()
163 param->type = TYPE_NUMBER; in iscsi_set_default_param()
167 param->type = TYPE_VALUE_LIST | TYPE_STRING; in iscsi_set_default_param()
173 param->type = TYPE_STRING; in iscsi_set_default_param()
177 param->type_range); in iscsi_set_default_param()
180 list_add_tail(&param->p_list, &param_list->param_list); in iscsi_set_default_param()
182 return param; in iscsi_set_default_param()
184 if (param) { in iscsi_set_default_param()
185 kfree(param->value); in iscsi_set_default_param()
186 kfree(param->name); in iscsi_set_default_param()
187 kfree(param); in iscsi_set_default_param()
196 struct iscsi_param *param = NULL; in iscsi_create_default_params() local
219 param = iscsi_set_default_param(pl, AUTHMETHOD, INITIAL_AUTHMETHOD, in iscsi_create_default_params()
222 if (!param) in iscsi_create_default_params()
225 param = iscsi_set_default_param(pl, HEADERDIGEST, INITIAL_HEADERDIGEST, in iscsi_create_default_params()
228 if (!param) in iscsi_create_default_params()
231 param = iscsi_set_default_param(pl, DATADIGEST, INITIAL_DATADIGEST, in iscsi_create_default_params()
234 if (!param) in iscsi_create_default_params()
237 param = iscsi_set_default_param(pl, MAXCONNECTIONS, in iscsi_create_default_params()
241 if (!param) in iscsi_create_default_params()
244 param = iscsi_set_default_param(pl, SENDTARGETS, INITIAL_SENDTARGETS, in iscsi_create_default_params()
247 if (!param) in iscsi_create_default_params()
250 param = iscsi_set_default_param(pl, TARGETNAME, INITIAL_TARGETNAME, in iscsi_create_default_params()
253 if (!param) in iscsi_create_default_params()
256 param = iscsi_set_default_param(pl, INITIATORNAME, in iscsi_create_default_params()
260 if (!param) in iscsi_create_default_params()
263 param = iscsi_set_default_param(pl, TARGETALIAS, INITIAL_TARGETALIAS, in iscsi_create_default_params()
266 if (!param) in iscsi_create_default_params()
269 param = iscsi_set_default_param(pl, INITIATORALIAS, in iscsi_create_default_params()
273 if (!param) in iscsi_create_default_params()
276 param = iscsi_set_default_param(pl, TARGETADDRESS, in iscsi_create_default_params()
280 if (!param) in iscsi_create_default_params()
283 param = iscsi_set_default_param(pl, TARGETPORTALGROUPTAG, in iscsi_create_default_params()
287 if (!param) in iscsi_create_default_params()
290 param = iscsi_set_default_param(pl, INITIALR2T, INITIAL_INITIALR2T, in iscsi_create_default_params()
293 if (!param) in iscsi_create_default_params()
296 param = iscsi_set_default_param(pl, IMMEDIATEDATA, in iscsi_create_default_params()
300 if (!param) in iscsi_create_default_params()
303 param = iscsi_set_default_param(pl, MAXXMITDATASEGMENTLENGTH, in iscsi_create_default_params()
307 if (!param) in iscsi_create_default_params()
310 param = iscsi_set_default_param(pl, MAXRECVDATASEGMENTLENGTH, in iscsi_create_default_params()
314 if (!param) in iscsi_create_default_params()
317 param = iscsi_set_default_param(pl, MAXBURSTLENGTH, in iscsi_create_default_params()
321 if (!param) in iscsi_create_default_params()
324 param = iscsi_set_default_param(pl, FIRSTBURSTLENGTH, in iscsi_create_default_params()
328 if (!param) in iscsi_create_default_params()
331 param = iscsi_set_default_param(pl, DEFAULTTIME2WAIT, in iscsi_create_default_params()
335 if (!param) in iscsi_create_default_params()
338 param = iscsi_set_default_param(pl, DEFAULTTIME2RETAIN, in iscsi_create_default_params()
342 if (!param) in iscsi_create_default_params()
345 param = iscsi_set_default_param(pl, MAXOUTSTANDINGR2T, in iscsi_create_default_params()
349 if (!param) in iscsi_create_default_params()
352 param = iscsi_set_default_param(pl, DATAPDUINORDER, in iscsi_create_default_params()
356 if (!param) in iscsi_create_default_params()
359 param = iscsi_set_default_param(pl, DATASEQUENCEINORDER, in iscsi_create_default_params()
363 if (!param) in iscsi_create_default_params()
366 param = iscsi_set_default_param(pl, ERRORRECOVERYLEVEL, in iscsi_create_default_params()
370 if (!param) in iscsi_create_default_params()
373 param = iscsi_set_default_param(pl, SESSIONTYPE, INITIAL_SESSIONTYPE, in iscsi_create_default_params()
376 if (!param) in iscsi_create_default_params()
379 param = iscsi_set_default_param(pl, IFMARKER, INITIAL_IFMARKER, in iscsi_create_default_params()
382 if (!param) in iscsi_create_default_params()
385 param = iscsi_set_default_param(pl, OFMARKER, INITIAL_OFMARKER, in iscsi_create_default_params()
388 if (!param) in iscsi_create_default_params()
391 param = iscsi_set_default_param(pl, IFMARKINT, INITIAL_IFMARKINT, in iscsi_create_default_params()
394 if (!param) in iscsi_create_default_params()
397 param = iscsi_set_default_param(pl, OFMARKINT, INITIAL_OFMARKINT, in iscsi_create_default_params()
400 if (!param) in iscsi_create_default_params()
406 param = iscsi_set_default_param(pl, RDMAEXTENSIONS, INITIAL_RDMAEXTENSIONS, in iscsi_create_default_params()
409 if (!param) in iscsi_create_default_params()
412 param = iscsi_set_default_param(pl, INITIATORRECVDATASEGMENTLENGTH, in iscsi_create_default_params()
416 if (!param) in iscsi_create_default_params()
419 param = iscsi_set_default_param(pl, TARGETRECVDATASEGMENTLENGTH, in iscsi_create_default_params()
423 if (!param) in iscsi_create_default_params()
437 struct iscsi_param *param; in iscsi_set_keys_to_negotiate() local
441 list_for_each_entry(param, &param_list->param_list, p_list) { in iscsi_set_keys_to_negotiate()
442 param->state = 0; in iscsi_set_keys_to_negotiate()
443 if (!strcmp(param->name, AUTHMETHOD)) { in iscsi_set_keys_to_negotiate()
444 SET_PSTATE_NEGOTIATE(param); in iscsi_set_keys_to_negotiate()
445 } else if (!strcmp(param->name, HEADERDIGEST)) { in iscsi_set_keys_to_negotiate()
447 SET_PSTATE_NEGOTIATE(param); in iscsi_set_keys_to_negotiate()
448 } else if (!strcmp(param->name, DATADIGEST)) { in iscsi_set_keys_to_negotiate()
450 SET_PSTATE_NEGOTIATE(param); in iscsi_set_keys_to_negotiate()
451 } else if (!strcmp(param->name, MAXCONNECTIONS)) { in iscsi_set_keys_to_negotiate()
452 SET_PSTATE_NEGOTIATE(param); in iscsi_set_keys_to_negotiate()
453 } else if (!strcmp(param->name, TARGETNAME)) { in iscsi_set_keys_to_negotiate()
455 } else if (!strcmp(param->name, INITIATORNAME)) { in iscsi_set_keys_to_negotiate()
457 } else if (!strcmp(param->name, TARGETALIAS)) { in iscsi_set_keys_to_negotiate()
458 if (param->value) in iscsi_set_keys_to_negotiate()
459 SET_PSTATE_NEGOTIATE(param); in iscsi_set_keys_to_negotiate()
460 } else if (!strcmp(param->name, INITIATORALIAS)) { in iscsi_set_keys_to_negotiate()
462 } else if (!strcmp(param->name, TARGETPORTALGROUPTAG)) { in iscsi_set_keys_to_negotiate()
463 SET_PSTATE_NEGOTIATE(param); in iscsi_set_keys_to_negotiate()
464 } else if (!strcmp(param->name, INITIALR2T)) { in iscsi_set_keys_to_negotiate()
465 SET_PSTATE_NEGOTIATE(param); in iscsi_set_keys_to_negotiate()
466 } else if (!strcmp(param->name, IMMEDIATEDATA)) { in iscsi_set_keys_to_negotiate()
467 SET_PSTATE_NEGOTIATE(param); in iscsi_set_keys_to_negotiate()
468 } else if (!strcmp(param->name, MAXRECVDATASEGMENTLENGTH)) { in iscsi_set_keys_to_negotiate()
470 SET_PSTATE_NEGOTIATE(param); in iscsi_set_keys_to_negotiate()
471 } else if (!strcmp(param->name, MAXXMITDATASEGMENTLENGTH)) { in iscsi_set_keys_to_negotiate()
473 } else if (!strcmp(param->name, MAXBURSTLENGTH)) { in iscsi_set_keys_to_negotiate()
474 SET_PSTATE_NEGOTIATE(param); in iscsi_set_keys_to_negotiate()
475 } else if (!strcmp(param->name, FIRSTBURSTLENGTH)) { in iscsi_set_keys_to_negotiate()
476 SET_PSTATE_NEGOTIATE(param); in iscsi_set_keys_to_negotiate()
477 } else if (!strcmp(param->name, DEFAULTTIME2WAIT)) { in iscsi_set_keys_to_negotiate()
478 SET_PSTATE_NEGOTIATE(param); in iscsi_set_keys_to_negotiate()
479 } else if (!strcmp(param->name, DEFAULTTIME2RETAIN)) { in iscsi_set_keys_to_negotiate()
480 SET_PSTATE_NEGOTIATE(param); in iscsi_set_keys_to_negotiate()
481 } else if (!strcmp(param->name, MAXOUTSTANDINGR2T)) { in iscsi_set_keys_to_negotiate()
482 SET_PSTATE_NEGOTIATE(param); in iscsi_set_keys_to_negotiate()
483 } else if (!strcmp(param->name, DATAPDUINORDER)) { in iscsi_set_keys_to_negotiate()
484 SET_PSTATE_NEGOTIATE(param); in iscsi_set_keys_to_negotiate()
485 } else if (!strcmp(param->name, DATASEQUENCEINORDER)) { in iscsi_set_keys_to_negotiate()
486 SET_PSTATE_NEGOTIATE(param); in iscsi_set_keys_to_negotiate()
487 } else if (!strcmp(param->name, ERRORRECOVERYLEVEL)) { in iscsi_set_keys_to_negotiate()
488 SET_PSTATE_NEGOTIATE(param); in iscsi_set_keys_to_negotiate()
489 } else if (!strcmp(param->name, SESSIONTYPE)) { in iscsi_set_keys_to_negotiate()
490 SET_PSTATE_NEGOTIATE(param); in iscsi_set_keys_to_negotiate()
491 } else if (!strcmp(param->name, IFMARKER)) { in iscsi_set_keys_to_negotiate()
492 SET_PSTATE_REJECT(param); in iscsi_set_keys_to_negotiate()
493 } else if (!strcmp(param->name, OFMARKER)) { in iscsi_set_keys_to_negotiate()
494 SET_PSTATE_REJECT(param); in iscsi_set_keys_to_negotiate()
495 } else if (!strcmp(param->name, IFMARKINT)) { in iscsi_set_keys_to_negotiate()
496 SET_PSTATE_REJECT(param); in iscsi_set_keys_to_negotiate()
497 } else if (!strcmp(param->name, OFMARKINT)) { in iscsi_set_keys_to_negotiate()
498 SET_PSTATE_REJECT(param); in iscsi_set_keys_to_negotiate()
499 } else if (!strcmp(param->name, RDMAEXTENSIONS)) { in iscsi_set_keys_to_negotiate()
501 SET_PSTATE_NEGOTIATE(param); in iscsi_set_keys_to_negotiate()
502 } else if (!strcmp(param->name, INITIATORRECVDATASEGMENTLENGTH)) { in iscsi_set_keys_to_negotiate()
504 SET_PSTATE_NEGOTIATE(param); in iscsi_set_keys_to_negotiate()
505 } else if (!strcmp(param->name, TARGETRECVDATASEGMENTLENGTH)) { in iscsi_set_keys_to_negotiate()
507 SET_PSTATE_NEGOTIATE(param); in iscsi_set_keys_to_negotiate()
517 struct iscsi_param *param; in iscsi_set_keys_irrelevant_for_discovery() local
519 list_for_each_entry(param, &param_list->param_list, p_list) { in iscsi_set_keys_irrelevant_for_discovery()
520 if (!strcmp(param->name, MAXCONNECTIONS)) in iscsi_set_keys_irrelevant_for_discovery()
521 param->state &= ~PSTATE_NEGOTIATE; in iscsi_set_keys_irrelevant_for_discovery()
522 else if (!strcmp(param->name, INITIALR2T)) in iscsi_set_keys_irrelevant_for_discovery()
523 param->state &= ~PSTATE_NEGOTIATE; in iscsi_set_keys_irrelevant_for_discovery()
524 else if (!strcmp(param->name, IMMEDIATEDATA)) in iscsi_set_keys_irrelevant_for_discovery()
525 param->state &= ~PSTATE_NEGOTIATE; in iscsi_set_keys_irrelevant_for_discovery()
526 else if (!strcmp(param->name, MAXBURSTLENGTH)) in iscsi_set_keys_irrelevant_for_discovery()
527 param->state &= ~PSTATE_NEGOTIATE; in iscsi_set_keys_irrelevant_for_discovery()
528 else if (!strcmp(param->name, FIRSTBURSTLENGTH)) in iscsi_set_keys_irrelevant_for_discovery()
529 param->state &= ~PSTATE_NEGOTIATE; in iscsi_set_keys_irrelevant_for_discovery()
530 else if (!strcmp(param->name, MAXOUTSTANDINGR2T)) in iscsi_set_keys_irrelevant_for_discovery()
531 param->state &= ~PSTATE_NEGOTIATE; in iscsi_set_keys_irrelevant_for_discovery()
532 else if (!strcmp(param->name, DATAPDUINORDER)) in iscsi_set_keys_irrelevant_for_discovery()
533 param->state &= ~PSTATE_NEGOTIATE; in iscsi_set_keys_irrelevant_for_discovery()
534 else if (!strcmp(param->name, DATASEQUENCEINORDER)) in iscsi_set_keys_irrelevant_for_discovery()
535 param->state &= ~PSTATE_NEGOTIATE; in iscsi_set_keys_irrelevant_for_discovery()
536 else if (!strcmp(param->name, ERRORRECOVERYLEVEL)) in iscsi_set_keys_irrelevant_for_discovery()
537 param->state &= ~PSTATE_NEGOTIATE; in iscsi_set_keys_irrelevant_for_discovery()
538 else if (!strcmp(param->name, DEFAULTTIME2WAIT)) in iscsi_set_keys_irrelevant_for_discovery()
539 param->state &= ~PSTATE_NEGOTIATE; in iscsi_set_keys_irrelevant_for_discovery()
540 else if (!strcmp(param->name, DEFAULTTIME2RETAIN)) in iscsi_set_keys_irrelevant_for_discovery()
541 param->state &= ~PSTATE_NEGOTIATE; in iscsi_set_keys_irrelevant_for_discovery()
542 else if (!strcmp(param->name, IFMARKER)) in iscsi_set_keys_irrelevant_for_discovery()
543 param->state &= ~PSTATE_NEGOTIATE; in iscsi_set_keys_irrelevant_for_discovery()
544 else if (!strcmp(param->name, OFMARKER)) in iscsi_set_keys_irrelevant_for_discovery()
545 param->state &= ~PSTATE_NEGOTIATE; in iscsi_set_keys_irrelevant_for_discovery()
546 else if (!strcmp(param->name, IFMARKINT)) in iscsi_set_keys_irrelevant_for_discovery()
547 param->state &= ~PSTATE_NEGOTIATE; in iscsi_set_keys_irrelevant_for_discovery()
548 else if (!strcmp(param->name, OFMARKINT)) in iscsi_set_keys_irrelevant_for_discovery()
549 param->state &= ~PSTATE_NEGOTIATE; in iscsi_set_keys_irrelevant_for_discovery()
550 else if (!strcmp(param->name, RDMAEXTENSIONS)) in iscsi_set_keys_irrelevant_for_discovery()
551 param->state &= ~PSTATE_NEGOTIATE; in iscsi_set_keys_irrelevant_for_discovery()
552 else if (!strcmp(param->name, INITIATORRECVDATASEGMENTLENGTH)) in iscsi_set_keys_irrelevant_for_discovery()
553 param->state &= ~PSTATE_NEGOTIATE; in iscsi_set_keys_irrelevant_for_discovery()
554 else if (!strcmp(param->name, TARGETRECVDATASEGMENTLENGTH)) in iscsi_set_keys_irrelevant_for_discovery()
555 param->state &= ~PSTATE_NEGOTIATE; in iscsi_set_keys_irrelevant_for_discovery()
566 struct iscsi_param *param = NULL; in iscsi_copy_param_list() local
578 list_for_each_entry(param, &src_param_list->param_list, p_list) { in iscsi_copy_param_list()
579 if (!leading && (param->scope & SCOPE_SESSION_WIDE)) { in iscsi_copy_param_list()
580 if ((strcmp(param->name, "TargetName") != 0) && in iscsi_copy_param_list()
581 (strcmp(param->name, "InitiatorName") != 0) && in iscsi_copy_param_list()
582 (strcmp(param->name, "TargetPortalGroupTag") != 0)) in iscsi_copy_param_list()
592 new_param->name = kstrdup(param->name, GFP_KERNEL); in iscsi_copy_param_list()
593 new_param->value = kstrdup(param->value, GFP_KERNEL); in iscsi_copy_param_list()
602 new_param->set_param = param->set_param; in iscsi_copy_param_list()
603 new_param->phase = param->phase; in iscsi_copy_param_list()
604 new_param->scope = param->scope; in iscsi_copy_param_list()
605 new_param->sender = param->sender; in iscsi_copy_param_list()
606 new_param->type = param->type; in iscsi_copy_param_list()
607 new_param->use = param->use; in iscsi_copy_param_list()
608 new_param->type_range = param->type_range; in iscsi_copy_param_list()
640 struct iscsi_param *param, *param_tmp; in iscsi_release_param_list() local
642 list_for_each_entry_safe(param, param_tmp, &param_list->param_list, in iscsi_release_param_list()
644 list_del(&param->p_list); in iscsi_release_param_list()
646 kfree(param->name); in iscsi_release_param_list()
647 kfree(param->value); in iscsi_release_param_list()
648 kfree(param); in iscsi_release_param_list()
660 struct iscsi_param *param; in iscsi_find_param_from_key() local
667 list_for_each_entry(param, &param_list->param_list, p_list) { in iscsi_find_param_from_key()
668 if (!strcmp(key, param->name)) in iscsi_find_param_from_key()
669 return param; in iscsi_find_param_from_key()
693 int iscsi_update_param_value(struct iscsi_param *param, char *value) in iscsi_update_param_value() argument
695 kfree(param->value); in iscsi_update_param_value()
697 param->value = kstrdup(value, GFP_KERNEL); in iscsi_update_param_value()
698 if (!param->value) { in iscsi_update_param_value()
704 param->name, param->value); in iscsi_update_param_value()
760 static void iscsi_check_proposer_for_optional_reply(struct iscsi_param *param, in iscsi_check_proposer_for_optional_reply() argument
763 if (IS_TYPE_BOOL_AND(param)) { in iscsi_check_proposer_for_optional_reply()
764 if (!strcmp(param->value, NO)) in iscsi_check_proposer_for_optional_reply()
765 SET_PSTATE_REPLY_OPTIONAL(param); in iscsi_check_proposer_for_optional_reply()
766 } else if (IS_TYPE_BOOL_OR(param)) { in iscsi_check_proposer_for_optional_reply()
767 if (!strcmp(param->value, YES)) in iscsi_check_proposer_for_optional_reply()
768 SET_PSTATE_REPLY_OPTIONAL(param); in iscsi_check_proposer_for_optional_reply()
774 if (!strcmp(param->name, IMMEDIATEDATA)) in iscsi_check_proposer_for_optional_reply()
775 SET_PSTATE_REPLY_OPTIONAL(param); in iscsi_check_proposer_for_optional_reply()
777 } else if (IS_TYPE_NUMBER(param)) { in iscsi_check_proposer_for_optional_reply()
778 if (!strcmp(param->name, MAXRECVDATASEGMENTLENGTH)) in iscsi_check_proposer_for_optional_reply()
779 SET_PSTATE_REPLY_OPTIONAL(param); in iscsi_check_proposer_for_optional_reply()
785 if (!strcmp(param->name, FIRSTBURSTLENGTH)) in iscsi_check_proposer_for_optional_reply()
786 SET_PSTATE_REPLY_OPTIONAL(param); in iscsi_check_proposer_for_optional_reply()
791 if (!strcmp(param->name, MAXCONNECTIONS)) in iscsi_check_proposer_for_optional_reply()
792 SET_PSTATE_REPLY_OPTIONAL(param); in iscsi_check_proposer_for_optional_reply()
794 } else if (IS_PHASE_DECLARATIVE(param)) in iscsi_check_proposer_for_optional_reply()
795 SET_PSTATE_REPLY_OPTIONAL(param); in iscsi_check_proposer_for_optional_reply()
798 static int iscsi_check_boolean_value(struct iscsi_param *param, char *value) in iscsi_check_boolean_value() argument
802 " \"%s\" or \"%s\".\n", param->name, YES, NO); in iscsi_check_boolean_value()
809 static int iscsi_check_numerical_value(struct iscsi_param *param, char *value_ptr) in iscsi_check_numerical_value() argument
816 if (IS_TYPERANGE_0_TO_2(param)) { in iscsi_check_numerical_value()
819 " between 0 and 2.\n", param->name); in iscsi_check_numerical_value()
824 if (IS_TYPERANGE_0_TO_3600(param)) { in iscsi_check_numerical_value()
827 " between 0 and 3600.\n", param->name); in iscsi_check_numerical_value()
832 if (IS_TYPERANGE_0_TO_32767(param)) { in iscsi_check_numerical_value()
835 " between 0 and 32767.\n", param->name); in iscsi_check_numerical_value()
840 if (IS_TYPERANGE_0_TO_65535(param)) { in iscsi_check_numerical_value()
843 " between 0 and 65535.\n", param->name); in iscsi_check_numerical_value()
848 if (IS_TYPERANGE_1_TO_65535(param)) { in iscsi_check_numerical_value()
851 " between 1 and 65535.\n", param->name); in iscsi_check_numerical_value()
856 if (IS_TYPERANGE_2_TO_3600(param)) { in iscsi_check_numerical_value()
859 " between 2 and 3600.\n", param->name); in iscsi_check_numerical_value()
864 if (IS_TYPERANGE_512_TO_16777215(param)) { in iscsi_check_numerical_value()
867 " between 512 and 16777215.\n", param->name); in iscsi_check_numerical_value()
876 static int iscsi_check_string_or_list_value(struct iscsi_param *param, char *value) in iscsi_check_string_or_list_value() argument
878 if (IS_PSTATE_PROPOSER(param)) in iscsi_check_string_or_list_value()
881 if (IS_TYPERANGE_AUTH_PARAM(param)) { in iscsi_check_string_or_list_value()
887 " or \"%s\".\n", param->name, KRB5, in iscsi_check_string_or_list_value()
892 if (IS_TYPERANGE_DIGEST_PARAM(param)) { in iscsi_check_string_or_list_value()
895 " \"%s\" or \"%s\".\n", param->name, in iscsi_check_string_or_list_value()
900 if (IS_TYPERANGE_SESSIONTYPE(param)) { in iscsi_check_string_or_list_value()
903 " \"%s\" or \"%s\".\n", param->name, in iscsi_check_string_or_list_value()
913 struct iscsi_param *param, in iscsi_check_valuelist_for_support() argument
919 acceptor_values = param->value; in iscsi_check_valuelist_for_support()
928 acceptor_values = param->value; in iscsi_check_valuelist_for_support()
957 static int iscsi_check_acceptor_state(struct iscsi_param *param, char *value, in iscsi_check_acceptor_state() argument
963 if (IS_PSTATE_ACCEPTOR(param)) { in iscsi_check_acceptor_state()
965 param->name); in iscsi_check_acceptor_state()
969 if (IS_PSTATE_REJECT(param)) in iscsi_check_acceptor_state()
972 if (IS_TYPE_BOOL_AND(param)) { in iscsi_check_acceptor_state()
975 if (!strcmp(param->value, YES)) in iscsi_check_acceptor_state()
980 if (iscsi_update_param_value(param, NO) < 0) in iscsi_check_acceptor_state()
983 SET_PSTATE_REPLY_OPTIONAL(param); in iscsi_check_acceptor_state()
985 } else if (IS_TYPE_BOOL_OR(param)) { in iscsi_check_acceptor_state()
988 if (!strcmp(param->value, YES)) in iscsi_check_acceptor_state()
991 if (iscsi_update_param_value(param, YES) < 0) in iscsi_check_acceptor_state()
994 SET_PSTATE_REPLY_OPTIONAL(param); in iscsi_check_acceptor_state()
996 } else if (IS_TYPE_NUMBER(param)) { in iscsi_check_acceptor_state()
998 u32 acceptor_value = simple_strtoul(param->value, &tmpptr, 0); in iscsi_check_acceptor_state()
1003 if (!strcmp(param->name, MAXCONNECTIONS) || in iscsi_check_acceptor_state()
1004 !strcmp(param->name, MAXBURSTLENGTH) || in iscsi_check_acceptor_state()
1005 !strcmp(param->name, FIRSTBURSTLENGTH) || in iscsi_check_acceptor_state()
1006 !strcmp(param->name, MAXOUTSTANDINGR2T) || in iscsi_check_acceptor_state()
1007 !strcmp(param->name, DEFAULTTIME2RETAIN) || in iscsi_check_acceptor_state()
1008 !strcmp(param->name, ERRORRECOVERYLEVEL)) { in iscsi_check_acceptor_state()
1011 if (iscsi_update_param_value(param, in iscsi_check_acceptor_state()
1015 if (iscsi_update_param_value(param, value) < 0) in iscsi_check_acceptor_state()
1018 } else if (!strcmp(param->name, DEFAULTTIME2WAIT)) { in iscsi_check_acceptor_state()
1021 if (iscsi_update_param_value(param, in iscsi_check_acceptor_state()
1025 if (iscsi_update_param_value(param, value) < 0) in iscsi_check_acceptor_state()
1029 if (iscsi_update_param_value(param, value) < 0) in iscsi_check_acceptor_state()
1033 if (!strcmp(param->name, MAXRECVDATASEGMENTLENGTH)) { in iscsi_check_acceptor_state()
1038 rc = kstrtoull(param->value, 0, &tmp); in iscsi_check_acceptor_state()
1053 rc = iscsi_update_param_value(param, in iscsi_check_acceptor_state()
1059 param->name, param->value); in iscsi_check_acceptor_state()
1061 } else if (IS_TYPE_VALUE_LIST(param)) { in iscsi_check_acceptor_state()
1063 param, value); in iscsi_check_acceptor_state()
1067 " \"%s\".\n", value, param->value); in iscsi_check_acceptor_state()
1070 if (iscsi_update_param_value(param, negotiated_value) < 0) in iscsi_check_acceptor_state()
1072 } else if (IS_PHASE_DECLARATIVE(param)) { in iscsi_check_acceptor_state()
1073 if (iscsi_update_param_value(param, value) < 0) in iscsi_check_acceptor_state()
1075 SET_PSTATE_REPLY_OPTIONAL(param); in iscsi_check_acceptor_state()
1081 static int iscsi_check_proposer_state(struct iscsi_param *param, char *value) in iscsi_check_proposer_state() argument
1083 if (IS_PSTATE_RESPONSE_GOT(param)) { in iscsi_check_proposer_state()
1085 param->name); in iscsi_check_proposer_state()
1089 if (IS_TYPE_VALUE_LIST(param)) { in iscsi_check_proposer_state()
1095 param->name); in iscsi_check_proposer_state()
1099 tmp_ptr = iscsi_check_valuelist_for_support(param, value); in iscsi_check_proposer_state()
1104 if (iscsi_update_param_value(param, value) < 0) in iscsi_check_proposer_state()
1110 static int iscsi_check_value(struct iscsi_param *param, char *value) in iscsi_check_value() argument
1115 if (!strcmp(param->name, IFMARKINT) || in iscsi_check_value()
1116 !strcmp(param->name, OFMARKINT)) { in iscsi_check_value()
1121 SET_PSTATE_REJECT(param); in iscsi_check_value()
1124 pr_err("Received %s=%s\n", param->name, value); in iscsi_check_value()
1128 pr_debug("Received %s=%s\n", param->name, value); in iscsi_check_value()
1129 SET_PSTATE_IRRELEVANT(param); in iscsi_check_value()
1133 if (!IS_PSTATE_PROPOSER(param)) { in iscsi_check_value()
1135 param->name, value); in iscsi_check_value()
1141 " with \"%s\", protocol error.\n", param->name, value); in iscsi_check_value()
1149 if (comma_ptr && !IS_TYPE_VALUE_LIST(param)) { in iscsi_check_value()
1152 " protocol error.\n", param->name); in iscsi_check_value()
1160 " protocol error.\n", param->name, in iscsi_check_value()
1165 if (IS_TYPE_BOOL_AND(param) || IS_TYPE_BOOL_OR(param)) { in iscsi_check_value()
1166 if (iscsi_check_boolean_value(param, value) < 0) in iscsi_check_value()
1168 } else if (IS_TYPE_NUMBER(param)) { in iscsi_check_value()
1169 if (iscsi_check_numerical_value(param, value) < 0) in iscsi_check_value()
1171 } else if (IS_TYPE_STRING(param) || IS_TYPE_VALUE_LIST(param)) { in iscsi_check_value()
1172 if (iscsi_check_string_or_list_value(param, value) < 0) in iscsi_check_value()
1175 pr_err("Huh? 0x%02x\n", param->type); in iscsi_check_value()
1193 struct iscsi_param *param; in __iscsi_check_key() local
1201 param = iscsi_find_param_from_key(key, param_list); in __iscsi_check_key()
1202 if (!param) in __iscsi_check_key()
1205 if ((sender & SENDER_INITIATOR) && !IS_SENDER_INITIATOR(param)) { in __iscsi_check_key()
1207 " protocol error.\n", param->name, in __iscsi_check_key()
1212 if ((sender & SENDER_TARGET) && !IS_SENDER_TARGET(param)) { in __iscsi_check_key()
1214 " protocol error.\n", param->name, in __iscsi_check_key()
1219 return param; in __iscsi_check_key()
1228 struct iscsi_param *param; in iscsi_check_key() local
1238 param = iscsi_find_param_from_key(key, param_list); in iscsi_check_key()
1239 if (!param) in iscsi_check_key()
1242 if ((sender & SENDER_INITIATOR) && !IS_SENDER_INITIATOR(param)) { in iscsi_check_key()
1244 " protocol error.\n", param->name, in iscsi_check_key()
1248 if ((sender & SENDER_TARGET) && !IS_SENDER_TARGET(param)) { in iscsi_check_key()
1250 " protocol error.\n", param->name, in iscsi_check_key()
1255 if (IS_PSTATE_ACCEPTOR(param)) { in iscsi_check_key()
1262 return param; in iscsi_check_key()
1264 if (!(param->phase & phase)) { in iscsi_check_key()
1278 param->name, phase_name); in iscsi_check_key()
1282 return param; in iscsi_check_key()
1293 struct iscsi_param *param = NULL; in iscsi_enforce_integrity_rules() local
1295 list_for_each_entry(param, &param_list->param_list, p_list) { in iscsi_enforce_integrity_rules()
1296 if (!(param->phase & phase)) in iscsi_enforce_integrity_rules()
1298 if (!strcmp(param->name, SESSIONTYPE)) in iscsi_enforce_integrity_rules()
1299 if (!strcmp(param->value, NORMAL)) in iscsi_enforce_integrity_rules()
1301 if (!strcmp(param->name, ERRORRECOVERYLEVEL)) in iscsi_enforce_integrity_rules()
1302 ErrorRecoveryLevel = simple_strtoul(param->value, in iscsi_enforce_integrity_rules()
1304 if (!strcmp(param->name, DATASEQUENCEINORDER)) in iscsi_enforce_integrity_rules()
1305 if (!strcmp(param->value, YES)) in iscsi_enforce_integrity_rules()
1307 if (!strcmp(param->name, MAXBURSTLENGTH)) in iscsi_enforce_integrity_rules()
1308 MaxBurstLength = simple_strtoul(param->value, in iscsi_enforce_integrity_rules()
1312 list_for_each_entry(param, &param_list->param_list, p_list) { in iscsi_enforce_integrity_rules()
1313 if (!(param->phase & phase)) in iscsi_enforce_integrity_rules()
1315 if (!SessionType && !IS_PSTATE_ACCEPTOR(param)) in iscsi_enforce_integrity_rules()
1317 if (!strcmp(param->name, MAXOUTSTANDINGR2T) && in iscsi_enforce_integrity_rules()
1319 if (strcmp(param->value, "1")) { in iscsi_enforce_integrity_rules()
1320 if (iscsi_update_param_value(param, "1") < 0) in iscsi_enforce_integrity_rules()
1323 param->name, param->value); in iscsi_enforce_integrity_rules()
1326 if (!strcmp(param->name, MAXCONNECTIONS) && !SessionType) { in iscsi_enforce_integrity_rules()
1327 if (strcmp(param->value, "1")) { in iscsi_enforce_integrity_rules()
1328 if (iscsi_update_param_value(param, "1") < 0) in iscsi_enforce_integrity_rules()
1331 param->name, param->value); in iscsi_enforce_integrity_rules()
1334 if (!strcmp(param->name, FIRSTBURSTLENGTH)) { in iscsi_enforce_integrity_rules()
1335 FirstBurstLength = simple_strtoul(param->value, in iscsi_enforce_integrity_rules()
1341 if (iscsi_update_param_value(param, tmpbuf)) in iscsi_enforce_integrity_rules()
1344 param->name, param->value); in iscsi_enforce_integrity_rules()
1373 struct iscsi_param *param; in iscsi_decode_text_input() local
1387 param = iscsi_check_key(key, phase, sender, param_list); in iscsi_decode_text_input()
1388 if (!param) { in iscsi_decode_text_input()
1396 if (iscsi_check_value(param, value) < 0) in iscsi_decode_text_input()
1401 if (IS_PSTATE_PROPOSER(param)) { in iscsi_decode_text_input()
1402 if (iscsi_check_proposer_state(param, value) < 0) in iscsi_decode_text_input()
1405 SET_PSTATE_RESPONSE_GOT(param); in iscsi_decode_text_input()
1407 if (iscsi_check_acceptor_state(param, value, conn) < 0) in iscsi_decode_text_input()
1410 SET_PSTATE_ACCEPTOR(param); in iscsi_decode_text_input()
1432 struct iscsi_param *param; in iscsi_encode_text_output() local
1439 list_for_each_entry(param, &param_list->param_list, p_list) { in iscsi_encode_text_output()
1440 if (!(param->sender & sender)) in iscsi_encode_text_output()
1442 if (IS_PSTATE_ACCEPTOR(param) && in iscsi_encode_text_output()
1443 !IS_PSTATE_RESPONSE_SENT(param) && in iscsi_encode_text_output()
1444 !IS_PSTATE_REPLY_OPTIONAL(param) && in iscsi_encode_text_output()
1445 (param->phase & phase)) { in iscsi_encode_text_output()
1447 param->name, param->value); in iscsi_encode_text_output()
1450 SET_PSTATE_RESPONSE_SENT(param); in iscsi_encode_text_output()
1452 param->name, param->value); in iscsi_encode_text_output()
1455 if (IS_PSTATE_NEGOTIATE(param) && in iscsi_encode_text_output()
1456 !IS_PSTATE_ACCEPTOR(param) && in iscsi_encode_text_output()
1457 !IS_PSTATE_PROPOSER(param) && in iscsi_encode_text_output()
1458 (param->phase & phase)) { in iscsi_encode_text_output()
1460 param->name, param->value); in iscsi_encode_text_output()
1463 SET_PSTATE_PROPOSER(param); in iscsi_encode_text_output()
1464 iscsi_check_proposer_for_optional_reply(param, in iscsi_encode_text_output()
1467 param->name, param->value); in iscsi_encode_text_output()
1485 struct iscsi_param *param; in iscsi_check_negotiated_keys() local
1487 list_for_each_entry(param, &param_list->param_list, p_list) { in iscsi_check_negotiated_keys()
1488 if (IS_PSTATE_NEGOTIATE(param) && in iscsi_check_negotiated_keys()
1489 IS_PSTATE_PROPOSER(param) && in iscsi_check_negotiated_keys()
1490 !IS_PSTATE_RESPONSE_GOT(param) && in iscsi_check_negotiated_keys()
1491 !IS_PSTATE_REPLY_OPTIONAL(param) && in iscsi_check_negotiated_keys()
1492 !IS_PHASE_DECLARATIVE(param)) { in iscsi_check_negotiated_keys()
1494 param->name); in iscsi_check_negotiated_keys()
1508 struct iscsi_param *param; in iscsi_change_param_value() local
1515 param = __iscsi_check_key(keyvalue, sender, param_list); in iscsi_change_param_value()
1516 if (!param) in iscsi_change_param_value()
1519 param = iscsi_check_key(keyvalue, 0, sender, param_list); in iscsi_change_param_value()
1520 if (!param) in iscsi_change_param_value()
1523 param->set_param = 1; in iscsi_change_param_value()
1524 if (iscsi_check_value(param, value) < 0) { in iscsi_change_param_value()
1525 param->set_param = 0; in iscsi_change_param_value()
1528 param->set_param = 0; in iscsi_change_param_value()
1531 if (iscsi_update_param_value(param, value) < 0) in iscsi_change_param_value()
1542 struct iscsi_param *param; in iscsi_set_connection_parameters() local
1546 list_for_each_entry(param, &param_list->param_list, p_list) { in iscsi_set_connection_parameters()
1552 if (!strcmp(param->name, MAXXMITDATASEGMENTLENGTH)) { in iscsi_set_connection_parameters()
1554 simple_strtoul(param->value, &tmpptr, 0); in iscsi_set_connection_parameters()
1556 param->value); in iscsi_set_connection_parameters()
1559 if (!IS_PSTATE_ACCEPTOR(param) && !IS_PSTATE_PROPOSER(param)) in iscsi_set_connection_parameters()
1561 if (!strcmp(param->name, AUTHMETHOD)) { in iscsi_set_connection_parameters()
1563 param->value); in iscsi_set_connection_parameters()
1564 } else if (!strcmp(param->name, HEADERDIGEST)) { in iscsi_set_connection_parameters()
1565 ops->HeaderDigest = !strcmp(param->value, CRC32C); in iscsi_set_connection_parameters()
1567 param->value); in iscsi_set_connection_parameters()
1568 } else if (!strcmp(param->name, DATADIGEST)) { in iscsi_set_connection_parameters()
1569 ops->DataDigest = !strcmp(param->value, CRC32C); in iscsi_set_connection_parameters()
1571 param->value); in iscsi_set_connection_parameters()
1572 } else if (!strcmp(param->name, MAXRECVDATASEGMENTLENGTH)) { in iscsi_set_connection_parameters()
1580 } else if (!strcmp(param->name, INITIATORRECVDATASEGMENTLENGTH)) { in iscsi_set_connection_parameters()
1582 simple_strtoul(param->value, &tmpptr, 0); in iscsi_set_connection_parameters()
1584 param->value); in iscsi_set_connection_parameters()
1588 } else if (!strcmp(param->name, TARGETRECVDATASEGMENTLENGTH)) { in iscsi_set_connection_parameters()
1590 simple_strtoul(param->value, &tmpptr, 0); in iscsi_set_connection_parameters()
1592 param->value); in iscsi_set_connection_parameters()
1608 struct iscsi_param *param; in iscsi_set_session_parameters() local
1612 list_for_each_entry(param, &param_list->param_list, p_list) { in iscsi_set_session_parameters()
1613 if (!IS_PSTATE_ACCEPTOR(param) && !IS_PSTATE_PROPOSER(param)) in iscsi_set_session_parameters()
1615 if (!strcmp(param->name, INITIATORNAME)) { in iscsi_set_session_parameters()
1616 if (!param->value) in iscsi_set_session_parameters()
1621 "%s", param->value); in iscsi_set_session_parameters()
1623 param->value); in iscsi_set_session_parameters()
1624 } else if (!strcmp(param->name, INITIATORALIAS)) { in iscsi_set_session_parameters()
1625 if (!param->value) in iscsi_set_session_parameters()
1629 "%s", param->value); in iscsi_set_session_parameters()
1631 param->value); in iscsi_set_session_parameters()
1632 } else if (!strcmp(param->name, TARGETNAME)) { in iscsi_set_session_parameters()
1633 if (!param->value) in iscsi_set_session_parameters()
1638 "%s", param->value); in iscsi_set_session_parameters()
1640 param->value); in iscsi_set_session_parameters()
1641 } else if (!strcmp(param->name, TARGETALIAS)) { in iscsi_set_session_parameters()
1642 if (!param->value) in iscsi_set_session_parameters()
1645 "%s", param->value); in iscsi_set_session_parameters()
1647 param->value); in iscsi_set_session_parameters()
1648 } else if (!strcmp(param->name, TARGETPORTALGROUPTAG)) { in iscsi_set_session_parameters()
1650 simple_strtoul(param->value, &tmpptr, 0); in iscsi_set_session_parameters()
1652 param->value); in iscsi_set_session_parameters()
1653 } else if (!strcmp(param->name, MAXCONNECTIONS)) { in iscsi_set_session_parameters()
1655 simple_strtoul(param->value, &tmpptr, 0); in iscsi_set_session_parameters()
1657 param->value); in iscsi_set_session_parameters()
1658 } else if (!strcmp(param->name, INITIALR2T)) { in iscsi_set_session_parameters()
1659 ops->InitialR2T = !strcmp(param->value, YES); in iscsi_set_session_parameters()
1661 param->value); in iscsi_set_session_parameters()
1662 } else if (!strcmp(param->name, IMMEDIATEDATA)) { in iscsi_set_session_parameters()
1663 ops->ImmediateData = !strcmp(param->value, YES); in iscsi_set_session_parameters()
1665 param->value); in iscsi_set_session_parameters()
1666 } else if (!strcmp(param->name, MAXBURSTLENGTH)) { in iscsi_set_session_parameters()
1668 simple_strtoul(param->value, &tmpptr, 0); in iscsi_set_session_parameters()
1670 param->value); in iscsi_set_session_parameters()
1671 } else if (!strcmp(param->name, FIRSTBURSTLENGTH)) { in iscsi_set_session_parameters()
1673 simple_strtoul(param->value, &tmpptr, 0); in iscsi_set_session_parameters()
1675 param->value); in iscsi_set_session_parameters()
1676 } else if (!strcmp(param->name, DEFAULTTIME2WAIT)) { in iscsi_set_session_parameters()
1678 simple_strtoul(param->value, &tmpptr, 0); in iscsi_set_session_parameters()
1680 param->value); in iscsi_set_session_parameters()
1681 } else if (!strcmp(param->name, DEFAULTTIME2RETAIN)) { in iscsi_set_session_parameters()
1683 simple_strtoul(param->value, &tmpptr, 0); in iscsi_set_session_parameters()
1685 param->value); in iscsi_set_session_parameters()
1686 } else if (!strcmp(param->name, MAXOUTSTANDINGR2T)) { in iscsi_set_session_parameters()
1688 simple_strtoul(param->value, &tmpptr, 0); in iscsi_set_session_parameters()
1690 param->value); in iscsi_set_session_parameters()
1691 } else if (!strcmp(param->name, DATAPDUINORDER)) { in iscsi_set_session_parameters()
1692 ops->DataPDUInOrder = !strcmp(param->value, YES); in iscsi_set_session_parameters()
1694 param->value); in iscsi_set_session_parameters()
1695 } else if (!strcmp(param->name, DATASEQUENCEINORDER)) { in iscsi_set_session_parameters()
1696 ops->DataSequenceInOrder = !strcmp(param->value, YES); in iscsi_set_session_parameters()
1698 param->value); in iscsi_set_session_parameters()
1699 } else if (!strcmp(param->name, ERRORRECOVERYLEVEL)) { in iscsi_set_session_parameters()
1701 simple_strtoul(param->value, &tmpptr, 0); in iscsi_set_session_parameters()
1703 param->value); in iscsi_set_session_parameters()
1704 } else if (!strcmp(param->name, SESSIONTYPE)) { in iscsi_set_session_parameters()
1705 ops->SessionType = !strcmp(param->value, DISCOVERY); in iscsi_set_session_parameters()
1707 param->value); in iscsi_set_session_parameters()
1708 } else if (!strcmp(param->name, RDMAEXTENSIONS)) { in iscsi_set_session_parameters()
1709 ops->RDMAExtensions = !strcmp(param->value, YES); in iscsi_set_session_parameters()
1711 param->value); in iscsi_set_session_parameters()