Lines Matching refs:node

70 	ocs_node_t *node = io->node;  in ocs_d_send_prli_rsp()  local
73 if (ocs->fc_type != node->fc_type) { in ocs_d_send_prli_rsp()
74 node_printf(node, "PRLI rejected by target-server, fc-type not supported\n"); in ocs_d_send_prli_rsp()
77 node->shutdown_reason = OCS_NODE_SHUTDOWN_DEFAULT; in ocs_d_send_prli_rsp()
78 ocs_node_transition(node, __ocs_d_initiate_shutdown, NULL); in ocs_d_send_prli_rsp()
82 if (node->sport->enable_tgt && (ocs_scsi_validate_initiator(node) == 0)) { in ocs_d_send_prli_rsp()
83 node_printf(node, "PRLI rejected by target-server\n"); in ocs_d_send_prli_rsp()
86 node->shutdown_reason = OCS_NODE_SHUTDOWN_DEFAULT; in ocs_d_send_prli_rsp()
87 ocs_node_transition(node, __ocs_d_initiate_shutdown, NULL); in ocs_d_send_prli_rsp()
95 ocs_node_transition(node, __ocs_d_device_ready, NULL); in ocs_d_send_prli_rsp()
121 ocs_scsi_io_alloc_disable(node); in __ocs_d_initiate_shutdown()
124 if (node->init && !node->targ) { in __ocs_d_initiate_shutdown()
125 ocs_log_debug(node->ocs, in __ocs_d_initiate_shutdown()
127 node->display_name, node->wwpn, node->wwnn); in __ocs_d_initiate_shutdown()
128 ocs_node_transition(node, __ocs_d_wait_del_node, NULL); in __ocs_d_initiate_shutdown()
129 if (node->sport->enable_tgt) { in __ocs_d_initiate_shutdown()
130 rc = ocs_scsi_del_initiator(node, in __ocs_d_initiate_shutdown()
134 ocs_node_post_event(node, in __ocs_d_initiate_shutdown()
137 } else if (node->targ && !node->init) { in __ocs_d_initiate_shutdown()
138 ocs_log_debug(node->ocs, in __ocs_d_initiate_shutdown()
140 node->display_name, node->wwpn, node->wwnn); in __ocs_d_initiate_shutdown()
141 ocs_node_transition(node, __ocs_d_wait_del_node, NULL); in __ocs_d_initiate_shutdown()
142 if (node->sport->enable_ini) { in __ocs_d_initiate_shutdown()
143 rc = ocs_scsi_del_target(node, in __ocs_d_initiate_shutdown()
147 ocs_node_post_event(node, in __ocs_d_initiate_shutdown()
150 } else if (node->init && node->targ) { in __ocs_d_initiate_shutdown()
151 ocs_log_debug(node->ocs, in __ocs_d_initiate_shutdown()
153 node->display_name, node->wwpn, node->wwnn); in __ocs_d_initiate_shutdown()
154 ocs_node_transition(node, __ocs_d_wait_del_ini_tgt, NULL); in __ocs_d_initiate_shutdown()
155 if (node->sport->enable_tgt) { in __ocs_d_initiate_shutdown()
156 rc = ocs_scsi_del_initiator(node, in __ocs_d_initiate_shutdown()
160 ocs_node_post_event(node, in __ocs_d_initiate_shutdown()
164 if (node->sport->enable_ini) { in __ocs_d_initiate_shutdown()
165 rc = ocs_scsi_del_target(node, in __ocs_d_initiate_shutdown()
169 ocs_node_post_event(node, in __ocs_d_initiate_shutdown()
182 if (node->attached) { in __ocs_d_initiate_shutdown()
187 rc = ocs_hw_node_detach(&ocs->hw, &node->rnode); in __ocs_d_initiate_shutdown()
188 if (node->rnode.free_group) { in __ocs_d_initiate_shutdown()
189 ocs_remote_node_group_free(node->node_group); in __ocs_d_initiate_shutdown()
190 node->node_group = NULL; in __ocs_d_initiate_shutdown()
191 node->rnode.free_group = FALSE; in __ocs_d_initiate_shutdown()
195 node_printf(node, in __ocs_d_initiate_shutdown()
201 if (!node->init && !node->targ){ in __ocs_d_initiate_shutdown()
207 ocs_node_initiate_cleanup(node); in __ocs_d_initiate_shutdown()
240 ocs_node_t *node = NULL; in __ocs_d_common() local
243 node = ctx->app; in __ocs_d_common()
244 ocs_assert(node, NULL); in __ocs_d_common()
245 ocs = node->ocs; in __ocs_d_common()
252 ocs_log_debug(ocs, "[%s] %-20s %-20s\n", node->display_name, funcname, ocs_sm_event_name(evt)); in __ocs_d_common()
253 node->shutdown_reason = OCS_NODE_SHUTDOWN_DEFAULT; in __ocs_d_common()
254 ocs_node_transition(node, __ocs_d_initiate_shutdown, NULL); in __ocs_d_common()
257 ocs_log_debug(ocs, "[%s] %-20s %-20s\n", node->display_name, funcname, ocs_sm_event_name(evt)); in __ocs_d_common()
258 node->shutdown_reason = OCS_NODE_SHUTDOWN_EXPLICIT_LOGO; in __ocs_d_common()
259 ocs_node_transition(node, __ocs_d_initiate_shutdown, NULL); in __ocs_d_common()
262 ocs_log_debug(ocs, "[%s] %-20s %-20s\n", node->display_name, funcname, ocs_sm_event_name(evt)); in __ocs_d_common()
263 node->shutdown_reason = OCS_NODE_SHUTDOWN_IMPLICIT_LOGO; in __ocs_d_common()
264 ocs_node_transition(node, __ocs_d_initiate_shutdown, NULL); in __ocs_d_common()
298 ocs_node_hold_frames(node); in __ocs_d_wait_loop()
302 ocs_node_accept_frames(node); in __ocs_d_wait_loop()
307 ocs_node_init_device(node, TRUE); in __ocs_d_wait_loop()
344 ocs_node_hold_frames(node); in __ocs_d_wait_del_ini_tgt()
354 ocs_node_transition(node, __ocs_d_wait_del_node, NULL); in __ocs_d_wait_del_ini_tgt()
358 ocs_node_accept_frames(node); in __ocs_d_wait_del_ini_tgt()
363 ocs_assert(node->els_req_cnt, NULL); in __ocs_d_wait_del_ini_tgt()
364 node->els_req_cnt--; in __ocs_d_wait_del_ini_tgt()
370 node->shutdown_reason = OCS_NODE_SHUTDOWN_DEFAULT; in __ocs_d_wait_del_ini_tgt()
374 node_printf(node, "%s received\n", ocs_sm_event_name(evt)); in __ocs_d_wait_del_ini_tgt()
411 ocs_node_hold_frames(node); in __ocs_d_wait_del_node()
425 ocs_node_initiate_cleanup(node); in __ocs_d_wait_del_node()
429 ocs_node_accept_frames(node); in __ocs_d_wait_del_node()
434 ocs_assert(node->els_req_cnt, NULL); in __ocs_d_wait_del_node()
435 node->els_req_cnt--; in __ocs_d_wait_del_node()
441 node->shutdown_reason = OCS_NODE_SHUTDOWN_DEFAULT; in __ocs_d_wait_del_node()
445 node_printf(node, "%s received\n", ocs_sm_event_name(evt)); in __ocs_d_wait_del_node()
478 ocs_node_t *node = io->node; in ocs_send_ls_acc_after_attach() local
481 ocs_assert(node->send_ls_acc == OCS_NODE_SEND_LS_ACC_NONE); in ocs_send_ls_acc_after_attach()
483 node->ls_acc_oxid = ox_id; in ocs_send_ls_acc_after_attach()
484 node->send_ls_acc = ls; in ocs_send_ls_acc_after_attach()
485 node->ls_acc_io = io; in ocs_send_ls_acc_after_attach()
486 node->ls_acc_did = fc_be24toh(hdr->d_id); in ocs_send_ls_acc_after_attach()
503 ocs_process_prli_payload(ocs_node_t *node, fc_prli_payload_t *prli) in ocs_process_prli_payload() argument
505 node->init = (ocs_be16toh(prli->service_params) & FC_PRLI_INITIATOR_FUNCTION) != 0; in ocs_process_prli_payload()
506 node->targ = (ocs_be16toh(prli->service_params) & FC_PRLI_TARGET_FUNCTION) != 0; in ocs_process_prli_payload()
507 node->fcp2device = (ocs_be16toh(prli->service_params) & FC_PRLI_RETRY) != 0; in ocs_process_prli_payload()
508 node->fc_type = prli->type; in ocs_process_prli_payload()
528 ocs_node_t *node = io->node; in ocs_process_abts() local
529 ocs_t *ocs = node->ocs; in ocs_process_abts()
534 abortio = ocs_io_find_tgt_io(ocs, node, ox_id, rx_id); in ocs_process_abts()
540 node_printf(node, "Abort request: ox_id [%04x] rx_id [%04x]\n", in ocs_process_abts()
571 node_printf(node, "Abort request: ox_id [%04x], IO not found (exists=%d)\n", in ocs_process_abts()
600 ocs_node_hold_frames(node); in __ocs_d_wait_plogi_acc_cmpl()
604 ocs_node_accept_frames(node); in __ocs_d_wait_plogi_acc_cmpl()
608 ocs_assert(node->els_cmpl_cnt, NULL); in __ocs_d_wait_plogi_acc_cmpl()
609 node->els_cmpl_cnt--; in __ocs_d_wait_plogi_acc_cmpl()
610 node->shutdown_reason = OCS_NODE_SHUTDOWN_DEFAULT; in __ocs_d_wait_plogi_acc_cmpl()
611 ocs_node_transition(node, __ocs_d_initiate_shutdown, NULL); in __ocs_d_wait_plogi_acc_cmpl()
615 ocs_assert(node->els_cmpl_cnt, NULL); in __ocs_d_wait_plogi_acc_cmpl()
616 node->els_cmpl_cnt--; in __ocs_d_wait_plogi_acc_cmpl()
617 ocs_node_transition(node, __ocs_d_port_logged_in, NULL); in __ocs_d_wait_plogi_acc_cmpl()
650 ocs_node_hold_frames(node); in __ocs_d_wait_logo_rsp()
654 ocs_node_accept_frames(node); in __ocs_d_wait_logo_rsp()
664 ocs_assert(node->els_req_cnt, NULL); in __ocs_d_wait_logo_rsp()
665 node->els_req_cnt--; in __ocs_d_wait_logo_rsp()
666 node_printf(node, "LOGO sent (evt=%s), shutdown node\n", ocs_sm_event_name(evt)); in __ocs_d_wait_logo_rsp()
668 ocs_node_post_event(node, OCS_EVT_SHUTDOWN_EXPLICIT_LOGO, NULL); in __ocs_d_wait_logo_rsp()
701 ocs_node_hold_frames(node); in __ocs_d_wait_prlo_rsp()
705 ocs_node_accept_frames(node); in __ocs_d_wait_prlo_rsp()
714 ocs_assert(node->els_req_cnt, NULL); in __ocs_d_wait_prlo_rsp()
715 node->els_req_cnt--; in __ocs_d_wait_prlo_rsp()
716 node_printf(node, "PRLO sent (evt=%s)\n", ocs_sm_event_name(evt)); in __ocs_d_wait_prlo_rsp()
717 ocs_node_transition(node, __ocs_d_port_logged_in, NULL); in __ocs_d_wait_prlo_rsp()
741 ocs_node_init_device(ocs_node_t *node, int send_plogi) in ocs_node_init_device() argument
743 node->send_plogi = send_plogi; in ocs_node_init_device()
744 …if ((node->ocs->nodedb_mask & OCS_NODEDB_PAUSE_NEW_NODES) && !FC_ADDR_IS_DOMAIN_CTRL(node->rnode.f… in ocs_node_init_device()
745 node->nodedb_state = __ocs_d_init; in ocs_node_init_device()
746 ocs_node_transition(node, __ocs_node_paused, NULL); in ocs_node_init_device()
748 ocs_node_transition(node, __ocs_d_init, NULL); in ocs_node_init_device()
782 if (node->send_plogi) { in __ocs_d_init()
784 if (node->sport->enable_ini && node->sport->domain->attached) { in __ocs_d_init()
785 ocs_send_plogi(node, OCS_FC_ELS_SEND_DEFAULT_TIMEOUT, in __ocs_d_init()
787 ocs_node_transition(node, __ocs_d_wait_plogi_rsp, NULL); in __ocs_d_init()
789 node_printf(node, "not sending plogi sport.ini=%d, domain attached=%d\n", in __ocs_d_init()
790 node->sport->enable_ini, node->sport->domain->attached); in __ocs_d_init()
799 ocs_node_save_sparms(node, cbdata->payload->dma.virt); in __ocs_d_init()
803 if (node->sport->domain->attached) { in __ocs_d_init()
804 rc = ocs_node_attach(node); in __ocs_d_init()
805 ocs_node_transition(node, __ocs_d_wait_node_attach, NULL); in __ocs_d_init()
807 ocs_node_post_event(node, OCS_EVT_NODE_ATTACH_OK, NULL); in __ocs_d_init()
813 switch (node->sport->topology) { in __ocs_d_init()
816 ocs_domain_attach(node->sport->domain, d_id); in __ocs_d_init()
817 ocs_node_transition(node, __ocs_d_wait_domain_attach, NULL); in __ocs_d_init()
823 ocs_node_transition(node, __ocs_d_wait_domain_attach, NULL); in __ocs_d_init()
836 node_printf(node, "received PLOGI, with unknown topology did=0x%x\n", d_id); in __ocs_d_init()
837 ocs_node_transition(node, __ocs_d_wait_topology_notify, NULL); in __ocs_d_init()
840 node_printf(node, "received PLOGI, with unexpectd topology %d\n", in __ocs_d_init()
841 node->sport->topology); in __ocs_d_init()
860 ocs_domain_save_sparms(node->sport->domain, cbdata->payload->dma.virt); in __ocs_d_init()
863 ocs_fabric_set_topology(node, OCS_SPORT_TOPOLOGY_P2P); in __ocs_d_init()
865 if (ocs_p2p_setup(node->sport)) { in __ocs_d_init()
866 node_printf(node, "p2p setup failed, shutting down node\n"); in __ocs_d_init()
867 ocs_node_post_event(node, OCS_EVT_SHUTDOWN, NULL); in __ocs_d_init()
869 ocs_node_transition(node, __ocs_p2p_wait_flogi_acc_cmpl, NULL); in __ocs_d_init()
878 if (!node->sport->domain->attached) { in __ocs_d_init()
881 node_printf(node, "%s domain not attached, dropping\n", ocs_sm_event_name(evt)); in __ocs_d_init()
882 ocs_node_post_event(node, OCS_EVT_SHUTDOWN_EXPLICIT_LOGO, NULL); in __ocs_d_init()
886 ocs_node_transition(node, __ocs_d_wait_logo_acc_cmpl, NULL); in __ocs_d_init()
896 if (!node->sport->domain->attached) { in __ocs_d_init()
899 node_printf(node, "%s domain not attached, dropping\n", ocs_sm_event_name(evt)); in __ocs_d_init()
900 ocs_node_post_event(node, OCS_EVT_SHUTDOWN_EXPLICIT_LOGO, NULL); in __ocs_d_init()
903 node_printf(node, "%s received, sending reject\n", ocs_sm_event_name(evt)); in __ocs_d_init()
914 if (!node->sport->domain->attached) { in __ocs_d_init()
917 node_printf(node, "%s domain not attached, dropping\n", ocs_sm_event_name(evt)); in __ocs_d_init()
918 ocs_node_post_event(node, OCS_EVT_SHUTDOWN_EXPLICIT_LOGO, NULL); in __ocs_d_init()
923 node_printf(node, "FCP_CMND received, send LOGO\n"); in __ocs_d_init()
924 if (ocs_send_logo(node, OCS_FC_ELS_SEND_DEFAULT_TIMEOUT, 0, NULL, NULL) == NULL) { in __ocs_d_init()
926 node_printf(node, "Failed to send LOGO\n"); in __ocs_d_init()
927 ocs_node_post_event(node, OCS_EVT_SHUTDOWN_EXPLICIT_LOGO, NULL); in __ocs_d_init()
930 ocs_node_transition(node, __ocs_d_wait_logo_rsp, NULL); in __ocs_d_init()
979 ocs_node_save_sparms(node, cbdata->payload->dma.virt); in __ocs_d_wait_plogi_rsp()
982 rc = ocs_node_attach(node); in __ocs_d_wait_plogi_rsp()
983 ocs_node_transition(node, __ocs_d_wait_node_attach, NULL); in __ocs_d_wait_plogi_rsp()
985 ocs_node_post_event(node, OCS_EVT_NODE_ATTACH_OK, NULL); in __ocs_d_wait_plogi_rsp()
998 ocs_process_prli_payload(node, cbdata->payload->dma.virt); in __ocs_d_wait_plogi_rsp()
999 if (ocs->fc_type == node->fc_type) { in __ocs_d_wait_plogi_rsp()
1001 ocs_node_transition(node, __ocs_d_wait_plogi_rsp_recvd_prli, NULL); in __ocs_d_wait_plogi_rsp()
1016 node_printf(node, "%s received, sending reject\n", ocs_sm_event_name(evt)); in __ocs_d_wait_plogi_rsp()
1029 ocs_assert(node->els_req_cnt, NULL); in __ocs_d_wait_plogi_rsp()
1030 node->els_req_cnt--; in __ocs_d_wait_plogi_rsp()
1032 ocs_node_save_sparms(node, cbdata->els->els_rsp.virt); in __ocs_d_wait_plogi_rsp()
1033 ocs_display_sparams(node->display_name, "plogi rcvd resp", 0, NULL, in __ocs_d_wait_plogi_rsp()
1035 rc = ocs_node_attach(node); in __ocs_d_wait_plogi_rsp()
1036 ocs_node_transition(node, __ocs_d_wait_node_attach, NULL); in __ocs_d_wait_plogi_rsp()
1038 ocs_node_post_event(node, OCS_EVT_NODE_ATTACH_OK, NULL); in __ocs_d_wait_plogi_rsp()
1047 ocs_assert(node->els_req_cnt, NULL); in __ocs_d_wait_plogi_rsp()
1048 node->els_req_cnt--; in __ocs_d_wait_plogi_rsp()
1049 ocs_node_post_event(node, OCS_EVT_SHUTDOWN, NULL); in __ocs_d_wait_plogi_rsp()
1056 ocs_assert(node->els_req_cnt, NULL); in __ocs_d_wait_plogi_rsp()
1057 node->els_req_cnt--; in __ocs_d_wait_plogi_rsp()
1064 node_printf(node, "FCP_CMND received, drop\n"); in __ocs_d_wait_plogi_rsp()
1115 ocs_node_hold_frames(node); in __ocs_d_wait_plogi_rsp_recvd_prli()
1119 ocs_node_accept_frames(node); in __ocs_d_wait_plogi_rsp_recvd_prli()
1127 ocs_assert(node->els_req_cnt, NULL); in __ocs_d_wait_plogi_rsp_recvd_prli()
1128 node->els_req_cnt--; in __ocs_d_wait_plogi_rsp_recvd_prli()
1130 ocs_node_save_sparms(node, cbdata->els->els_rsp.virt); in __ocs_d_wait_plogi_rsp_recvd_prli()
1131 ocs_display_sparams(node->display_name, "plogi rcvd resp", 0, NULL, in __ocs_d_wait_plogi_rsp_recvd_prli()
1133 rc = ocs_node_attach(node); in __ocs_d_wait_plogi_rsp_recvd_prli()
1134 ocs_node_transition(node, __ocs_d_wait_node_attach, NULL); in __ocs_d_wait_plogi_rsp_recvd_prli()
1136 ocs_node_post_event(node, OCS_EVT_NODE_ATTACH_OK, NULL); in __ocs_d_wait_plogi_rsp_recvd_prli()
1146 ocs_assert(node->els_req_cnt, NULL); in __ocs_d_wait_plogi_rsp_recvd_prli()
1147 node->els_req_cnt--; in __ocs_d_wait_plogi_rsp_recvd_prli()
1148 ocs_node_post_event(node, OCS_EVT_SHUTDOWN, NULL); in __ocs_d_wait_plogi_rsp_recvd_prli()
1183 ocs_node_hold_frames(node); in __ocs_d_wait_domain_attach()
1187 ocs_node_accept_frames(node); in __ocs_d_wait_domain_attach()
1191 ocs_assert(node->sport->domain->attached, NULL); in __ocs_d_wait_domain_attach()
1193 rc = ocs_node_attach(node); in __ocs_d_wait_domain_attach()
1194 ocs_node_transition(node, __ocs_d_wait_node_attach, NULL); in __ocs_d_wait_domain_attach()
1196 ocs_node_post_event(node, OCS_EVT_NODE_ATTACH_OK, NULL); in __ocs_d_wait_domain_attach()
1233 ocs_node_hold_frames(node); in __ocs_d_wait_topology_notify()
1237 ocs_node_accept_frames(node); in __ocs_d_wait_topology_notify()
1242 ocs_assert(!node->sport->domain->attached, NULL); in __ocs_d_wait_topology_notify()
1243 ocs_assert(node->send_ls_acc == OCS_NODE_SEND_LS_ACC_PLOGI, NULL); in __ocs_d_wait_topology_notify()
1244 node_printf(node, "topology notification, topology=%d\n", topology); in __ocs_d_wait_topology_notify()
1255 ocs_domain_attach(node->sport->domain, node->ls_acc_did); in __ocs_d_wait_topology_notify()
1262 ocs_node_transition(node, __ocs_d_wait_domain_attach, NULL); in __ocs_d_wait_topology_notify()
1266 ocs_assert(node->sport->domain->attached, NULL); in __ocs_d_wait_topology_notify()
1267 node_printf(node, "domain attach ok\n"); in __ocs_d_wait_topology_notify()
1269 rc = ocs_node_attach(node); in __ocs_d_wait_topology_notify()
1270 ocs_node_transition(node, __ocs_d_wait_node_attach, NULL); in __ocs_d_wait_topology_notify()
1272 ocs_node_post_event(node, OCS_EVT_NODE_ATTACH_OK, NULL); in __ocs_d_wait_topology_notify()
1303 ocs_node_hold_frames(node); in __ocs_d_wait_node_attach()
1307 ocs_node_accept_frames(node); in __ocs_d_wait_node_attach()
1311 node->attached = TRUE; in __ocs_d_wait_node_attach()
1312 switch (node->send_ls_acc) { in __ocs_d_wait_node_attach()
1316 ocs_send_plogi_acc(node->ls_acc_io, node->ls_acc_oxid, NULL, NULL); in __ocs_d_wait_node_attach()
1317 ocs_node_transition(node, __ocs_d_wait_plogi_acc_cmpl, NULL); in __ocs_d_wait_node_attach()
1318 node->send_ls_acc = OCS_NODE_SEND_LS_ACC_NONE; in __ocs_d_wait_node_attach()
1319 node->ls_acc_io = NULL; in __ocs_d_wait_node_attach()
1323 ocs_d_send_prli_rsp(node->ls_acc_io, node->ls_acc_oxid); in __ocs_d_wait_node_attach()
1324 node->send_ls_acc = OCS_NODE_SEND_LS_ACC_NONE; in __ocs_d_wait_node_attach()
1325 node->ls_acc_io = NULL; in __ocs_d_wait_node_attach()
1332 ocs_node_transition(node, __ocs_d_port_logged_in, NULL); in __ocs_d_wait_node_attach()
1339 node->attached = FALSE; in __ocs_d_wait_node_attach()
1340 node_printf(node, "node attach failed\n"); in __ocs_d_wait_node_attach()
1341 node->shutdown_reason = OCS_NODE_SHUTDOWN_DEFAULT; in __ocs_d_wait_node_attach()
1342 ocs_node_transition(node, __ocs_d_initiate_shutdown, NULL); in __ocs_d_wait_node_attach()
1347 node_printf(node, "%s received\n", ocs_sm_event_name(evt)); in __ocs_d_wait_node_attach()
1348 node->shutdown_reason = OCS_NODE_SHUTDOWN_DEFAULT; in __ocs_d_wait_node_attach()
1349 ocs_node_transition(node, __ocs_d_wait_attach_evt_shutdown, NULL); in __ocs_d_wait_node_attach()
1352 node_printf(node, "%s received\n", ocs_sm_event_name(evt)); in __ocs_d_wait_node_attach()
1353 node->shutdown_reason = OCS_NODE_SHUTDOWN_EXPLICIT_LOGO; in __ocs_d_wait_node_attach()
1354 ocs_node_transition(node, __ocs_d_wait_attach_evt_shutdown, NULL); in __ocs_d_wait_node_attach()
1357 node_printf(node, "%s received\n", ocs_sm_event_name(evt)); in __ocs_d_wait_node_attach()
1358 node->shutdown_reason = OCS_NODE_SHUTDOWN_IMPLICIT_LOGO; in __ocs_d_wait_node_attach()
1359 ocs_node_transition(node, __ocs_d_wait_attach_evt_shutdown, NULL); in __ocs_d_wait_node_attach()
1390 ocs_node_hold_frames(node); in __ocs_d_wait_attach_evt_shutdown()
1394 ocs_node_accept_frames(node); in __ocs_d_wait_attach_evt_shutdown()
1399 node->attached = TRUE; in __ocs_d_wait_attach_evt_shutdown()
1400 node_printf(node, "Attach evt=%s, proceed to shutdown\n", ocs_sm_event_name(evt)); in __ocs_d_wait_attach_evt_shutdown()
1401 ocs_node_transition(node, __ocs_d_initiate_shutdown, NULL); in __ocs_d_wait_attach_evt_shutdown()
1406 node->attached = FALSE; in __ocs_d_wait_attach_evt_shutdown()
1407 node_printf(node, "Attach evt=%s, proceed to shutdown\n", ocs_sm_event_name(evt)); in __ocs_d_wait_attach_evt_shutdown()
1408 ocs_node_transition(node, __ocs_d_initiate_shutdown, NULL); in __ocs_d_wait_attach_evt_shutdown()
1414 node->shutdown_reason = OCS_NODE_SHUTDOWN_DEFAULT; in __ocs_d_wait_attach_evt_shutdown()
1418 node_printf(node, "%s received\n", ocs_sm_event_name(evt)); in __ocs_d_wait_attach_evt_shutdown()
1455 if (node->sport->enable_ini && !FC_ADDR_IS_DOMAIN_CTRL(node->rnode.fc_id) in __ocs_d_port_logged_in()
1456 && !node->sent_prli) { in __ocs_d_port_logged_in()
1458 ocs_send_prli(node, OCS_FC_ELS_SEND_DEFAULT_TIMEOUT, OCS_FC_ELS_DEFAULT_RETRIES, NULL, NULL); in __ocs_d_port_logged_in()
1459 node->sent_prli = TRUE; in __ocs_d_port_logged_in()
1466 if (node->sport->enable_tgt) { in __ocs_d_port_logged_in()
1467 if (ocs_send_prlo(node, OCS_FC_ELS_SEND_DEFAULT_TIMEOUT, in __ocs_d_port_logged_in()
1469 ocs_node_transition(node, __ocs_d_wait_prlo_rsp, NULL); in __ocs_d_port_logged_in()
1480 ocs_process_prli_payload(node, cbdata->payload->dma.virt); in __ocs_d_port_logged_in()
1490 ocs_assert(node->els_req_cnt, NULL); in __ocs_d_port_logged_in()
1491 node->els_req_cnt--; in __ocs_d_port_logged_in()
1493 ocs_process_prli_payload(node, cbdata->els->els_rsp.virt); in __ocs_d_port_logged_in()
1494 ocs_node_transition(node, __ocs_d_device_ready, NULL); in __ocs_d_port_logged_in()
1503 ocs_assert(node->els_req_cnt, NULL); in __ocs_d_port_logged_in()
1504 node->els_req_cnt--; in __ocs_d_port_logged_in()
1505 ocs_node_post_event(node, OCS_EVT_SHUTDOWN, NULL); in __ocs_d_port_logged_in()
1516 ocs_assert(node->els_req_cnt, NULL); in __ocs_d_port_logged_in()
1517 node->els_req_cnt--; in __ocs_d_port_logged_in()
1526 ocs_assert(node->els_cmpl_cnt, NULL); in __ocs_d_port_logged_in()
1527 node->els_cmpl_cnt--; in __ocs_d_port_logged_in()
1534 ocs_node_save_sparms(node, cbdata->payload->dma.virt); in __ocs_d_port_logged_in()
1538 ocs_node_post_event(node, OCS_EVT_SHUTDOWN_IMPLICIT_LOGO, NULL); in __ocs_d_port_logged_in()
1545 node_printf(node, "%s received attached=%d\n", ocs_sm_event_name(evt), node->attached); in __ocs_d_port_logged_in()
1547 ocs_node_transition(node, __ocs_d_wait_logo_acc_cmpl, NULL); in __ocs_d_port_logged_in()
1582 ocs_node_hold_frames(node); in __ocs_d_wait_logo_acc_cmpl()
1586 ocs_node_accept_frames(node); in __ocs_d_wait_logo_acc_cmpl()
1592 ocs_assert(node->els_cmpl_cnt, NULL); in __ocs_d_wait_logo_acc_cmpl()
1593 node->els_cmpl_cnt--; in __ocs_d_wait_logo_acc_cmpl()
1594 ocs_node_post_event(node, OCS_EVT_SHUTDOWN_EXPLICIT_LOGO, NULL); in __ocs_d_wait_logo_acc_cmpl()
1627 node->fcp_enabled = TRUE; in __ocs_d_device_ready()
1628 if (node->init) { in __ocs_d_device_ready()
1629 device_printf(ocs->dev, "[%s] found (initiator) WWPN %s WWNN %s\n", node->display_name, in __ocs_d_device_ready()
1630 node->wwpn, node->wwnn); in __ocs_d_device_ready()
1631 if (node->sport->enable_tgt) in __ocs_d_device_ready()
1632 ocs_scsi_new_initiator(node); in __ocs_d_device_ready()
1634 if (node->targ) { in __ocs_d_device_ready()
1635 device_printf(ocs->dev, "[%s] found (target) WWPN %s WWNN %s\n", node->display_name, in __ocs_d_device_ready()
1636 node->wwpn, node->wwnn); in __ocs_d_device_ready()
1637 if (node->sport->enable_ini) in __ocs_d_device_ready()
1638 ocs_scsi_new_target(node); in __ocs_d_device_ready()
1643 node->fcp_enabled = FALSE; in __ocs_d_device_ready()
1649 ocs_node_save_sparms(node, cbdata->payload->dma.virt); in __ocs_d_device_ready()
1653 ocs_node_post_event(node, OCS_EVT_SHUTDOWN_IMPLICIT_LOGO, NULL); in __ocs_d_device_ready()
1668 ocs_process_prli_payload(node, cbdata->payload->dma.virt); in __ocs_d_device_ready()
1671 if (ocs->fc_type == node->fc_type) in __ocs_d_device_ready()
1695 node_printf(node, "%s received attached=%d\n", ocs_sm_event_name(evt), node->attached); in __ocs_d_device_ready()
1697 ocs_node_transition(node, __ocs_d_wait_logo_acc_cmpl, NULL); in __ocs_d_device_ready()
1725 if (node->sport->enable_rscn) { in __ocs_d_device_ready()
1726 ocs_node_transition(node, __ocs_d_device_gone, NULL); in __ocs_d_device_ready()
1732 ocs_assert(node->els_cmpl_cnt, NULL); in __ocs_d_device_ready()
1733 node->els_cmpl_cnt--; in __ocs_d_device_ready()
1738 ocs_assert(node->els_cmpl_cnt, NULL); in __ocs_d_device_ready()
1739 node->els_cmpl_cnt--; in __ocs_d_device_ready()
1740 node_printf(node, "Failed to send PRLI LS_ACC\n"); in __ocs_d_device_ready()
1779 device_printf(ocs->dev, "[%s] missing (%s) WWPN %s WWNN %s\n", node->display_name, in __ocs_d_device_gone()
1780 labels[(node->targ << 1) | (node->init)], node->wwpn, node->wwnn); in __ocs_d_device_gone()
1782 switch(ocs_node_get_enable(node)) { in __ocs_d_device_gone()
1786 rc = ocs_scsi_del_target(node, OCS_SCSI_TARGET_MISSING); in __ocs_d_device_gone()
1792 rc = ocs_scsi_del_initiator(node, OCS_SCSI_INITIATOR_MISSING); in __ocs_d_device_gone()
1796 rc = ocs_scsi_del_initiator(node, OCS_SCSI_INITIATOR_MISSING); in __ocs_d_device_gone()
1800 rc = ocs_scsi_del_target(node, OCS_SCSI_TARGET_MISSING); in __ocs_d_device_gone()
1804 rc = ocs_scsi_del_initiator(node, OCS_SCSI_INITIATOR_MISSING); in __ocs_d_device_gone()
1805 rc_2 = ocs_scsi_del_target(node, OCS_SCSI_TARGET_MISSING); in __ocs_d_device_gone()
1815 ocs_node_post_event(node, OCS_EVT_SHUTDOWN, NULL); in __ocs_d_device_gone()
1828 ocs_send_adisc(node, OCS_FC_ELS_SEND_DEFAULT_TIMEOUT, OCS_FC_ELS_DEFAULT_RETRIES, NULL, NULL); in __ocs_d_device_gone()
1829 ocs_node_transition(node, __ocs_d_wait_adisc_rsp, NULL); in __ocs_d_device_gone()
1835 ocs_node_save_sparms(node, cbdata->payload->dma.virt); in __ocs_d_device_gone()
1839 ocs_node_post_event(node, OCS_EVT_SHUTDOWN_IMPLICIT_LOGO, NULL); in __ocs_d_device_gone()
1847 node_printf(node, "FCP_CMND received, drop\n"); in __ocs_d_device_gone()
1853 node_printf(node, "%s received attached=%d\n", ocs_sm_event_name(evt), node->attached); in __ocs_d_device_gone()
1856 ocs_node_transition(node, __ocs_d_wait_logo_acc_cmpl, NULL); in __ocs_d_device_gone()
1894 ocs_assert(node->els_req_cnt, NULL); in __ocs_d_wait_adisc_rsp()
1895 node->els_req_cnt--; in __ocs_d_wait_adisc_rsp()
1896 ocs_node_transition(node, __ocs_d_device_ready, NULL); in __ocs_d_wait_adisc_rsp()
1906 ocs_assert(node->els_req_cnt, NULL); in __ocs_d_wait_adisc_rsp()
1907 node->els_req_cnt--; in __ocs_d_wait_adisc_rsp()
1909 ocs_node_post_event(node, OCS_EVT_SHUTDOWN_EXPLICIT_LOGO, NULL); in __ocs_d_wait_adisc_rsp()
1918 node_printf(node, "%s received attached=%d\n", ocs_sm_event_name(evt), node->attached); in __ocs_d_wait_adisc_rsp()
1920 ocs_node_transition(node, __ocs_d_wait_logo_acc_cmpl, NULL); in __ocs_d_wait_adisc_rsp()