Lines Matching defs:ihp

48 static boolean_t iscsid_init_config(iscsi_hba_t *ihp);
49 static boolean_t iscsid_init_targets(iscsi_hba_t *ihp);
55 static void iscsid_threads_create(iscsi_hba_t *ihp);
59 static void iscsid_add_pg_list_to_cache(iscsi_hba_t *ihp,
62 static boolean_t iscsid_add(iscsi_hba_t *ihp, iSCSIDiscoveryMethod_t method,
65 static void iscsi_discovery_event(iscsi_hba_t *ihp,
67 static boolean_t iscsid_boot_init_config(iscsi_hba_t *ihp);
68 static iscsi_sess_t *iscsi_add_boot_sess(iscsi_hba_t *ihp, int isid);
71 static boolean_t iscsid_check_active_boot_conn(iscsi_hba_t *ihp);
204 iscsi_boot_session_create(iscsi_hba_t *ihp,
211 if (ihp == NULL || boot_prop_table == NULL) {
228 (void) iscsid_add(ihp, dm, &addr_dsc.sin,
239 (void) iscsid_login_tgt(ihp, NULL, dm,
249 iscsid_init(iscsi_hba_t *ihp)
256 iscsid_threads_create(ihp);
261 ihp->hba_persistent_loaded = B_TRUE;
268 if (!iscsid_boot_init_config(ihp)) {
271 iscsi_boot_session_create(ihp, iscsiboot_prop);
273 iscsi_thread_create(ihp->hba_dip,
274 "BootWD", iscsid_thread_boot_wd, ihp);
297 iscsid_start(iscsi_hba_t *ihp) {
302 rval = iscsid_init_config(ihp);
304 rval = iscsid_init_targets(ihp);
309 rval = iscsid_enable_discovery(ihp, dm, B_TRUE);
311 iscsid_poke_discovery(ihp,
313 (void) iscsid_login_tgt(ihp, NULL,
327 iscsi_discovery_event(ihp, *fdm, B_TRUE);
328 iscsi_discovery_event(ihp, *fdm, B_FALSE);
342 iscsid_stop(iscsi_hba_t *ihp) {
346 (void) iscsid_disable_discovery(ihp, ISCSI_ALL_DISCOVERY_METHODS);
349 rw_enter(&ihp->hba_sess_list_rwlock, RW_READER);
350 if (ihp->hba_sess_list == NULL) {
358 for (isp = ihp->hba_sess_list; isp != NULL;
366 rw_exit(&ihp->hba_sess_list_rwlock);
419 iscsid_enable_discovery(iscsi_hba_t *ihp, iSCSIDiscoveryMethod_t idm,
459 iscsid_disable_discovery(iscsi_hba_t *ihp, iSCSIDiscoveryMethod_t idm)
472 iscsi_discovery_event(ihp, dt->method, B_TRUE);
475 rval = iscsid_del(ihp, NULL, dt->method, NULL);
485 iscsi_discovery_event(ihp,
501 iscsi_discovery_event(ihp, dt->method, B_FALSE);
514 iscsid_poke_discovery(iscsi_hba_t *ihp, iSCSIDiscoveryMethod_t method)
522 ASSERT(ihp != NULL);
525 mutex_enter(&ihp->hba_discovery_events_mutex);
526 ihp->hba_discovery_in_progress = B_TRUE;
527 ihp->hba_discovery_events = iSCSIDiscoveryMethodUnknown;
528 mutex_exit(&ihp->hba_discovery_events_mutex);
547 iscsi_discovery_event(ihp, dt->method, B_TRUE);
548 iscsi_discovery_event(ihp, dt->method, B_FALSE);
552 mutex_enter(&ihp->hba_discovery_events_mutex);
553 while (ihp->hba_discovery_events != ISCSI_ALL_DISCOVERY_METHODS) {
554 mutex_exit(&ihp->hba_discovery_events_mutex);
556 mutex_enter(&ihp->hba_discovery_events_mutex);
558 ihp->hba_discovery_in_progress = B_FALSE;
559 mutex_exit(&ihp->hba_discovery_events_mutex);
581 iscsi_hba_t *ihp;
596 if ((ihp = (iscsi_hba_t *)ddi_get_soft_state(iscsi_state, 0)) == NULL) {
602 sema_p(&ihp->hba_sendtgts_semaphore);
603 rc = iscsi_ioctl_sendtgts_get(ihp, stl_hdr);
604 sema_v(&ihp->hba_sendtgts_semaphore);
652 (void) iscsid_add(ihp, dm,
661 iscsid_do_isns_query_one_server(iscsi_hba_t *ihp, entry_t *isns_server)
683 ap, ihp->hba_isid,
684 ihp->hba_name, ihp->hba_alias,
693 iscsid_add_pg_list_to_cache(ihp, pg_list);
703 iscsid_do_isns_query(iscsi_hba_t *ihp)
709 query_status = isns_query(ihp->hba_isid,
710 ihp->hba_name,
711 ihp->hba_alias,
734 iscsid_add_pg_list_to_cache(ihp, pg_list);
754 iscsid_config_one(iscsi_hba_t *ihp, char *name, boolean_t protect)
779 rc = iscsid_login_tgt(ihp, name,
785 iscsi_boot_session_create(ihp,
790 rc = iscsid_check_active_boot_conn(ihp);
824 rc = iscsid_login_tgt(ihp, name, iSCSIDiscoveryMethodUnknown,
839 (ddi_get_lbolt() > ihp->hba_config_lbolt +
840 SEC_TO_TICK(ihp->hba_config_storm_delay))) {
841 ihp->hba_config_lbolt = ddi_get_lbolt();
842 iscsid_poke_discovery(ihp,
844 (void) iscsid_login_tgt(ihp, name,
859 iscsid_config_all(iscsi_hba_t *ihp, boolean_t protect)
880 rc = iscsid_login_tgt(ihp, NULL,
888 iscsi_boot_session_create(ihp,
893 rc = iscsid_check_active_boot_conn(ihp);
934 (ddi_get_lbolt() > ihp->hba_config_lbolt +
935 SEC_TO_TICK(ihp->hba_config_storm_delay))) {
936 ihp->hba_config_lbolt = ddi_get_lbolt();
937 iscsid_poke_discovery(ihp,
940 (void) iscsid_login_tgt(ihp, NULL,
959 iscsi_hba_t *ihp;
966 if ((ihp = (iscsi_hba_t *)ddi_get_soft_state(iscsi_state, 0)) == NULL) {
976 if (iscsi_client_request_service(ihp) == B_FALSE) {
992 ihp->hba_isid,
993 ihp->hba_name,
1022 (void) iscsid_add(ihp, iSCSIDiscoveryMethodISNS,
1028 (void) iscsid_login_tgt(ihp, (char *)pg_list->
1047 if (iscsid_del(ihp,
1078 iscsi_client_release_service(ihp);
1087 iscsid_add(iscsi_hba_t *ihp, iSCSIDiscoveryMethod_t method,
1101 ASSERT(ihp != NULL);
1118 tmp = (char *)ihp->hba_name;
1131 !iscsi_chk_bootlun_mpxio(ihp)) {
1165 rw_enter(&ihp->hba_sess_list_rwlock, RW_WRITER);
1168 isp = iscsi_sess_create(ihp, method, addr_dsc, target_name,
1188 rw_exit(&ihp->hba_sess_list_rwlock);
1197 iscsid_del(iscsi_hba_t *ihp, char *target_name,
1205 ASSERT(ihp != NULL);
1209 rw_enter(&ihp->hba_sess_list_rwlock, RW_WRITER);
1210 isp = ihp->hba_sess_list;
1268 isp = ihp->hba_sess_list;
1295 rw_exit(&ihp->hba_sess_list_rwlock);
1304 iscsid_login_tgt(iscsi_hba_t *ihp, char *target_name,
1317 ASSERT(ihp != NULL);
1319 rw_enter(&ihp->hba_sess_list_rwlock, RW_WRITER);
1321 isp = ihp->hba_sess_list;
1408 login_taskq = ddi_taskq_create(ihp->hba_dip,
1417 rw_exit(&ihp->hba_sess_list_rwlock);
1442 rw_exit(&ihp->hba_sess_list_rwlock);
1456 iscsid_init_config(iscsi_hba_t *ihp)
1486 (void) iscsi_set_params(&ips, ihp, B_TRUE);
1488 ihp->hba_tunable_params.recv_login_rsp_timeout =
1490 ihp->hba_tunable_params.polling_login_delay =
1492 ihp->hba_tunable_params.conn_login_max =
1500 (void) iscsi_set_params(&ips, ihp, B_FALSE);
1511 bcopy(&pparam.p_params, &ihp->hba_tunable_params,
1522 iscsid_set_default_initiator_node_settings(ihp, B_FALSE);
1523 (void) strncpy(initiatorName, (const char *)ihp->hba_name,
1534 (void) iscsi_set_params(&ips, ihp, B_FALSE);
1548 ips.s_oid = ihp->hba_oid;
1557 ihp, B_FALSE);
1569 iscsi_chk_bootlun_mpxio(ihp)) {
1570 (void) iscsi_reconfig_boot_sess(ihp);
1594 iscsid_init_targets(iscsi_hba_t *ihp)
1604 ASSERT(ihp != NULL);
1635 !iscsi_chk_bootlun_mpxio(ihp)) {
1652 ihp, B_FALSE);
1663 iscsi_chk_bootlun_mpxio(ihp)) {
1664 (void) iscsi_reconfig_boot_sess(ihp);
1689 iscsi_hba_t *ihp = (iscsi_hba_t *)p;
1692 iscsi_discovery_event(ihp, iSCSIDiscoveryMethodStatic, B_TRUE);
1700 iscsi_discovery_event(ihp,
1718 (void) iscsid_add(ihp, iSCSIDiscoveryMethodStatic,
1722 iscsi_discovery_event(ihp, iSCSIDiscoveryMethodStatic, B_FALSE);
1736 iscsi_hba_t *ihp = (iscsi_hba_t *)p;
1742 iscsi_discovery_event(ihp, iSCSIDiscoveryMethodSendTargets,
1751 iscsi_discovery_event(ihp,
1766 iscsi_discovery_event(ihp, iSCSIDiscoveryMethodSendTargets,
1778 iscsi_hba_t *ihp = (iscsi_hba_t *)p;
1787 iscsi_discovery_event(ihp, iSCSIDiscoveryMethodSLP, B_TRUE);
1788 iscsi_discovery_event(ihp, iSCSIDiscoveryMethodSLP, B_FALSE);
1798 iscsi_hba_t *ihp = (iscsi_hba_t *)ptr;
1802 iscsi_discovery_event(ihp, iSCSIDiscoveryMethodISNS, B_TRUE);
1810 iscsi_discovery_event(ihp,
1815 (void) isns_reg(ihp->hba_isid,
1816 ihp->hba_name,
1818 ihp->hba_alias,
1822 iscsid_do_isns_query(ihp);
1823 iscsi_discovery_event(ihp, iSCSIDiscoveryMethodISNS, B_FALSE);
1827 (void) isns_dereg(ihp->hba_isid, ihp->hba_name);
1835 iscsid_threads_create(iscsi_hba_t *ihp)
1845 t->thr_id = iscsi_thread_create(ihp->hba_dip, t->name,
1846 t->func_start, ihp);
1949 iscsid_add_pg_list_to_cache(iscsi_hba_t *ihp,
1969 (void) iscsid_add(ihp, iSCSIDiscoveryMethodISNS, &addr_dsc.sin,
1987 iscsid_set_default_initiator_node_settings(iscsi_hba_t *ihp, boolean_t minimal)
1997 (void) strncpy((char *)ihp->hba_name,
2001 (void) snprintf((char *)ihp->hba_name,
2009 (void) strncat((char *)ihp->hba_name, val,
2016 (void) strncat((char *)ihp->hba_name, val, ISCSI_MAX_NAME_LEN);
2018 if (ihp->hba_alias[0] == '\0') {
2019 (void) strncpy((char *)ihp->hba_alias,
2021 ihp->hba_alias_length = strlen((char *)ihp->hba_alias);
2024 (char *)ihp->hba_alias);
2033 (void) persistent_initiator_name_set((char *)ihp->hba_name);
2036 if (persistent_initiator_name_get((char *)ihp->hba_name,
2040 if (persistent_chap_get((char *)ihp->hba_name, chap) ==
2042 bcopy((char *)ihp->hba_name, chap->c_user,
2043 strlen((char *)ihp->hba_name));
2044 chap->c_user_len = strlen((char *)ihp->hba_name);
2045 (void) persistent_chap_set((char *)ihp->hba_name, chap);
2125 iscsi_discovery_event(iscsi_hba_t *ihp, iSCSIDiscoveryMethod_t m,
2130 mutex_enter(&ihp->hba_discovery_events_mutex);
2136 ihp->hba_discovery_events |= iSCSIDiscoveryMethodStatic;
2145 ihp->hba_discovery_events |=
2155 ihp->hba_discovery_events |= iSCSIDiscoveryMethodSLP;
2164 ihp->hba_discovery_events |= iSCSIDiscoveryMethodISNS;
2169 mutex_exit(&ihp->hba_discovery_events_mutex);
2170 iscsi_send_sysevent(ihp, EC_ISCSI, subclass, NULL);
2178 iscsi_hba_t *ihp,
2183 (void) ddi_log_sysevent(ihp->hba_dip, DDI_VENDOR_SUNW, eventclass,
2188 iscsid_boot_init_config(iscsi_hba_t *ihp)
2192 ihp->hba_name,
2200 iscsi_reconfig_boot_sess(iscsi_hba_t *ihp)
2253 t_isp = iscsi_add_boot_sess(ihp, ISCSI_MAX_CONFIG_SESSIONS);
2257 rw_exit(&ihp->hba_sess_list_rwlock);
2263 rw_enter(&ihp->hba_sess_list_rwlock, RW_WRITER);
2264 isp = ihp->hba_sess_list;
2266 if (iscsi_chk_bootlun_mpxio(ihp) && isp->sess_boot) {
2274 isp = ihp->hba_sess_list;
2299 rw_exit(&ihp->hba_sess_list_rwlock);
2302 isp = iscsi_add_boot_sess(ihp, isid);
2320 rw_enter(&ihp->hba_sess_list_rwlock, RW_WRITER);
2325 rw_exit(&ihp->hba_sess_list_rwlock);
2328 rw_exit(&ihp->hba_sess_list_rwlock);
2335 iscsi_add_boot_sess(iscsi_hba_t *ihp, int isid)
2357 rw_enter(&ihp->hba_sess_list_rwlock, RW_WRITER);
2358 isp = iscsi_sess_create(ihp,
2365 rw_exit(&ihp->hba_sess_list_rwlock);
2372 rw_exit(&ihp->hba_sess_list_rwlock);
2376 rw_exit(&ihp->hba_sess_list_rwlock);
2378 if (iscsid_login_tgt(ihp, (char *)iscsiboot_prop->boot_tgt.tgt_name,
2391 iscsi_hba_t *ihp = (iscsi_hba_t *)p;
2396 if (ihp->hba_persistent_loaded == B_FALSE) {
2398 ihp->hba_persistent_loaded = B_TRUE;
2401 if ((ihp->hba_persistent_loaded == B_TRUE) &&
2403 if (iscsi_chk_bootlun_mpxio(ihp) == B_TRUE) {
2404 (void) iscsi_reconfig_boot_sess(ihp);
2405 iscsid_poke_discovery(ihp,
2407 (void) iscsid_login_tgt(ihp, NULL,
2443 iscsi_chk_bootlun_mpxio(iscsi_hba_t *ihp)
2447 isp = ihp->hba_sess_list;
2456 if (!ihp->hba_mpxio_enabled) {
2492 return (ihp->hba_mpxio_enabled);
2497 iscsid_check_active_boot_conn(iscsi_hba_t *ihp)
2502 rw_enter(&ihp->hba_sess_list_rwlock, RW_READER);
2503 isp = ihp->hba_sess_list;
2512 rw_exit(&ihp->hba_sess_list_rwlock);
2521 rw_exit(&ihp->hba_sess_list_rwlock);