Lines Matching refs:ndlp
55 struct lpfc_nodelist *ndlp, uint8_t retry);
155 struct lpfc_nodelist *ndlp, uint32_t did, in lpfc_prep_els_iocb() argument
304 elsiocb->context1 = lpfc_nlp_get(ndlp); in lpfc_prep_els_iocb()
323 vport->port_state, ndlp->nlp_rpi, in lpfc_prep_els_iocb()
331 elscmd, ndlp->nlp_DID, elsiocb->iotag, in lpfc_prep_els_iocb()
333 ndlp->nlp_rpi, vport->fc_flag); in lpfc_prep_els_iocb()
374 struct lpfc_nodelist *ndlp; in lpfc_issue_fabric_reglogin() local
380 ndlp = lpfc_findnode_did(vport, Fabric_DID); in lpfc_issue_fabric_reglogin()
381 if (!ndlp || !NLP_CHK_NODE_ACT(ndlp)) { in lpfc_issue_fabric_reglogin()
409 ndlp->nlp_rpi); in lpfc_issue_fabric_reglogin()
420 mbox->ctx_ndlp = lpfc_nlp_get(ndlp); in lpfc_issue_fabric_reglogin()
434 lpfc_nlp_put(ndlp); in lpfc_issue_fabric_reglogin()
465 struct lpfc_nodelist *ndlp; in lpfc_issue_reg_vfi() local
473 ndlp = lpfc_findnode_did(vport, Fabric_DID); in lpfc_issue_reg_vfi()
474 if (!ndlp || !NLP_CHK_NODE_ACT(ndlp)) { in lpfc_issue_reg_vfi()
658 lpfc_cmpl_els_flogi_fabric(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, in lpfc_cmpl_els_flogi_fabric() argument
685 memcpy(&ndlp->nlp_portname, &sp->portName, sizeof(struct lpfc_name)); in lpfc_cmpl_els_flogi_fabric()
686 memcpy(&ndlp->nlp_nodename, &sp->nodeName, sizeof(struct lpfc_name)); in lpfc_cmpl_els_flogi_fabric()
687 ndlp->nlp_class_sup = 0; in lpfc_cmpl_els_flogi_fabric()
689 ndlp->nlp_class_sup |= FC_COS_CLASS1; in lpfc_cmpl_els_flogi_fabric()
691 ndlp->nlp_class_sup |= FC_COS_CLASS2; in lpfc_cmpl_els_flogi_fabric()
693 ndlp->nlp_class_sup |= FC_COS_CLASS3; in lpfc_cmpl_els_flogi_fabric()
695 ndlp->nlp_class_sup |= FC_COS_CLASS4; in lpfc_cmpl_els_flogi_fabric()
696 ndlp->nlp_maxframe = ((sp->cmn.bbRcvSizeMsb & 0x0F) << 8) | in lpfc_cmpl_els_flogi_fabric()
801 lpfc_nlp_set_state(vport, ndlp, NLP_STE_UNMAPPED_NODE); in lpfc_cmpl_els_flogi_fabric()
802 lpfc_register_new_vport(phba, vport, ndlp); in lpfc_cmpl_els_flogi_fabric()
807 lpfc_nlp_set_state(vport, ndlp, NLP_STE_REG_LOGIN_ISSUE); in lpfc_cmpl_els_flogi_fabric()
810 lpfc_register_new_vport(phba, vport, ndlp); in lpfc_cmpl_els_flogi_fabric()
814 ndlp->nlp_type |= NLP_FABRIC; in lpfc_cmpl_els_flogi_fabric()
815 lpfc_nlp_set_state(vport, ndlp, NLP_STE_UNMAPPED_NODE); in lpfc_cmpl_els_flogi_fabric()
853 lpfc_cmpl_els_flogi_nport(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, in lpfc_cmpl_els_flogi_nport() argument
900 lpfc_nlp_put(ndlp); in lpfc_cmpl_els_flogi_nport()
902 ndlp = lpfc_findnode_did(vport, PT2PT_RemoteID); in lpfc_cmpl_els_flogi_nport()
903 if (!ndlp) { in lpfc_cmpl_els_flogi_nport()
908 ndlp = lpfc_nlp_init(vport, PT2PT_RemoteID); in lpfc_cmpl_els_flogi_nport()
909 if (!ndlp) in lpfc_cmpl_els_flogi_nport()
911 } else if (!NLP_CHK_NODE_ACT(ndlp)) { in lpfc_cmpl_els_flogi_nport()
912 ndlp = lpfc_enable_node(vport, ndlp, in lpfc_cmpl_els_flogi_nport()
914 if(!ndlp) in lpfc_cmpl_els_flogi_nport()
918 memcpy(&ndlp->nlp_portname, &sp->portName, in lpfc_cmpl_els_flogi_nport()
920 memcpy(&ndlp->nlp_nodename, &sp->nodeName, in lpfc_cmpl_els_flogi_nport()
923 lpfc_nlp_set_state(vport, ndlp, NLP_STE_NPR_NODE); in lpfc_cmpl_els_flogi_nport()
925 ndlp->nlp_flag |= NLP_NPR_2B_DISC; in lpfc_cmpl_els_flogi_nport()
946 lpfc_nlp_put(ndlp); in lpfc_cmpl_els_flogi_nport()
987 struct lpfc_nodelist *ndlp = cmdiocb->context1; in lpfc_cmpl_els_flogi() local
998 lpfc_nlp_put(ndlp); in lpfc_cmpl_els_flogi()
1099 lpfc_nlp_put(ndlp); in lpfc_cmpl_els_flogi()
1133 rc = lpfc_cmpl_els_flogi_fabric(vport, ndlp, sp, irsp); in lpfc_cmpl_els_flogi()
1135 rc = lpfc_cmpl_els_flogi_nport(vport, ndlp, sp); in lpfc_cmpl_els_flogi()
1160 lpfc_nlp_put(ndlp); in lpfc_cmpl_els_flogi()
1199 lpfc_nlp_put(ndlp); in lpfc_cmpl_els_flogi()
1276 lpfc_issue_els_flogi(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, in lpfc_issue_els_flogi() argument
1290 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp, in lpfc_issue_els_flogi()
1291 ndlp->nlp_DID, ELS_CMD_FLOGI); in lpfc_issue_els_flogi()
1380 ndlp, NULL); in lpfc_issue_els_flogi()
1413 struct lpfc_nodelist *ndlp; in lpfc_els_abort_flogi() local
1433 ndlp = (struct lpfc_nodelist *)(iocb->context1); in lpfc_els_abort_flogi()
1434 if (ndlp && NLP_CHK_NODE_ACT(ndlp) && in lpfc_els_abort_flogi()
1435 (ndlp->nlp_DID == Fabric_DID)) in lpfc_els_abort_flogi()
1463 struct lpfc_nodelist *ndlp; in lpfc_initial_flogi() local
1469 ndlp = lpfc_findnode_did(vport, Fabric_DID); in lpfc_initial_flogi()
1470 if (!ndlp) { in lpfc_initial_flogi()
1472 ndlp = lpfc_nlp_init(vport, Fabric_DID); in lpfc_initial_flogi()
1473 if (!ndlp) in lpfc_initial_flogi()
1476 ndlp->nlp_type |= NLP_FABRIC; in lpfc_initial_flogi()
1478 lpfc_enqueue_node(vport, ndlp); in lpfc_initial_flogi()
1479 } else if (!NLP_CHK_NODE_ACT(ndlp)) { in lpfc_initial_flogi()
1481 ndlp = lpfc_enable_node(vport, ndlp, NLP_STE_UNUSED_NODE); in lpfc_initial_flogi()
1482 if (!ndlp) in lpfc_initial_flogi()
1486 if (lpfc_issue_els_flogi(vport, ndlp, 0)) { in lpfc_initial_flogi()
1490 lpfc_nlp_put(ndlp); in lpfc_initial_flogi()
1515 struct lpfc_nodelist *ndlp; in lpfc_initial_fdisc() local
1518 ndlp = lpfc_findnode_did(vport, Fabric_DID); in lpfc_initial_fdisc()
1519 if (!ndlp) { in lpfc_initial_fdisc()
1521 ndlp = lpfc_nlp_init(vport, Fabric_DID); in lpfc_initial_fdisc()
1522 if (!ndlp) in lpfc_initial_fdisc()
1525 lpfc_enqueue_node(vport, ndlp); in lpfc_initial_fdisc()
1526 } else if (!NLP_CHK_NODE_ACT(ndlp)) { in lpfc_initial_fdisc()
1528 ndlp = lpfc_enable_node(vport, ndlp, NLP_STE_UNUSED_NODE); in lpfc_initial_fdisc()
1529 if (!ndlp) in lpfc_initial_fdisc()
1533 if (lpfc_issue_els_fdisc(vport, ndlp, 0)) { in lpfc_initial_fdisc()
1537 lpfc_nlp_put(ndlp); in lpfc_initial_fdisc()
1607 struct lpfc_nodelist *ndlp) in lpfc_plogi_confirm_nport() argument
1609 struct lpfc_vport *vport = ndlp->vport; in lpfc_plogi_confirm_nport()
1628 if (ndlp->nlp_type & NLP_FABRIC) in lpfc_plogi_confirm_nport()
1629 return ndlp; in lpfc_plogi_confirm_nport()
1640 if (new_ndlp == ndlp && NLP_CHK_NODE_ACT(new_ndlp)) in lpfc_plogi_confirm_nport()
1641 return ndlp; in lpfc_plogi_confirm_nport()
1654 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_fc4_type, in lpfc_plogi_confirm_nport()
1660 rc = memcmp(&ndlp->nlp_portname, name, in lpfc_plogi_confirm_nport()
1666 return ndlp; in lpfc_plogi_confirm_nport()
1668 new_ndlp = lpfc_nlp_init(vport, ndlp->nlp_DID); in lpfc_plogi_confirm_nport()
1673 return ndlp; in lpfc_plogi_confirm_nport()
1676 rc = memcmp(&ndlp->nlp_portname, name, in lpfc_plogi_confirm_nport()
1682 return ndlp; in lpfc_plogi_confirm_nport()
1690 return ndlp; in lpfc_plogi_confirm_nport()
1713 new_ndlp->nlp_fc4_type = ndlp->nlp_fc4_type; in lpfc_plogi_confirm_nport()
1717 new_ndlp->nlp_DID = ndlp->nlp_DID; in lpfc_plogi_confirm_nport()
1718 new_ndlp->nlp_prev_state = ndlp->nlp_prev_state; in lpfc_plogi_confirm_nport()
1721 ndlp->active_rrqs_xri_bitmap, in lpfc_plogi_confirm_nport()
1726 keep_nlp_flag = ndlp->nlp_flag; in lpfc_plogi_confirm_nport()
1727 new_ndlp->nlp_flag = ndlp->nlp_flag; in lpfc_plogi_confirm_nport()
1741 ndlp->nlp_flag = keep_new_nlp_flag; in lpfc_plogi_confirm_nport()
1745 ndlp->nlp_flag |= NLP_UNREG_INP; in lpfc_plogi_confirm_nport()
1747 ndlp->nlp_flag &= ~NLP_UNREG_INP; in lpfc_plogi_confirm_nport()
1751 ndlp->nlp_flag |= NLP_RPI_REGISTERED; in lpfc_plogi_confirm_nport()
1753 ndlp->nlp_flag &= ~NLP_RPI_REGISTERED; in lpfc_plogi_confirm_nport()
1759 lpfc_nlp_set_state(vport, new_ndlp, ndlp->nlp_state); in lpfc_plogi_confirm_nport()
1763 new_ndlp->nrport = ndlp->nrport; in lpfc_plogi_confirm_nport()
1766 if (memcmp(&ndlp->nlp_portname, name, sizeof(struct lpfc_name)) == 0) { in lpfc_plogi_confirm_nport()
1775 rport = ndlp->rport; in lpfc_plogi_confirm_nport()
1778 if (rdata->pnode == ndlp) { in lpfc_plogi_confirm_nport()
1780 ndlp->rport = NULL; in lpfc_plogi_confirm_nport()
1781 lpfc_nlp_put(ndlp); in lpfc_plogi_confirm_nport()
1785 new_ndlp->nlp_type = ndlp->nlp_type; in lpfc_plogi_confirm_nport()
1789 if (ndlp->nrport) { in lpfc_plogi_confirm_nport()
1790 ndlp->nrport = NULL; in lpfc_plogi_confirm_nport()
1791 lpfc_nlp_put(ndlp); in lpfc_plogi_confirm_nport()
1798 if (ndlp->nlp_DID == 0) { in lpfc_plogi_confirm_nport()
1800 NLP_SET_FREE_REQ(ndlp); in lpfc_plogi_confirm_nport()
1808 ndlp->nlp_DID = keepDID; in lpfc_plogi_confirm_nport()
1809 lpfc_nlp_set_state(vport, ndlp, keep_nlp_state); in lpfc_plogi_confirm_nport()
1812 memcpy(ndlp->active_rrqs_xri_bitmap, in lpfc_plogi_confirm_nport()
1816 if (!NLP_CHK_NODE_ACT(ndlp)) in lpfc_plogi_confirm_nport()
1817 lpfc_drop_node(vport, ndlp); in lpfc_plogi_confirm_nport()
1824 lpfc_unreg_rpi(vport, ndlp); in lpfc_plogi_confirm_nport()
1830 ndlp->nlp_DID = keepDID; in lpfc_plogi_confirm_nport()
1831 ndlp->nlp_fc4_type = keep_nlp_fc4_type; in lpfc_plogi_confirm_nport()
1835 memcpy(ndlp->active_rrqs_xri_bitmap, in lpfc_plogi_confirm_nport()
1842 if ((ndlp->nlp_state == NLP_STE_UNMAPPED_NODE) || in lpfc_plogi_confirm_nport()
1843 (ndlp->nlp_state == NLP_STE_MAPPED_NODE)) in lpfc_plogi_confirm_nport()
1845 lpfc_nlp_set_state(vport, ndlp, keep_nlp_state); in lpfc_plogi_confirm_nport()
1851 if (ndlp->nrport) in lpfc_plogi_confirm_nport()
1852 lpfc_nlp_put(ndlp); in lpfc_plogi_confirm_nport()
1853 ndlp->nrport = keep_nrport; in lpfc_plogi_confirm_nport()
1856 rport = ndlp->rport; in lpfc_plogi_confirm_nport()
1860 put_rport = ndlp->rport != NULL; in lpfc_plogi_confirm_nport()
1862 ndlp->rport = NULL; in lpfc_plogi_confirm_nport()
1864 lpfc_nlp_put(ndlp); in lpfc_plogi_confirm_nport()
1932 struct lpfc_nodelist *ndlp; in lpfc_cmpl_els_rrq() local
1945 ndlp = lpfc_findnode_did(vport, irsp->un.elsreq64.remoteID); in lpfc_cmpl_els_rrq()
1946 if (!ndlp || !NLP_CHK_NODE_ACT(ndlp) || ndlp != rrq->ndlp) { in lpfc_cmpl_els_rrq()
1960 ndlp->nlp_DID, irsp->ulpStatus, irsp->un.ulpWord[4], in lpfc_cmpl_els_rrq()
1973 ndlp->nlp_DID, irsp->ulpStatus, in lpfc_cmpl_els_rrq()
2009 struct lpfc_nodelist *ndlp; in lpfc_cmpl_els_plogi() local
2022 ndlp = lpfc_findnode_did(vport, irsp->un.elsreq64.remoteID); in lpfc_cmpl_els_plogi()
2023 if (!ndlp || !NLP_CHK_NODE_ACT(ndlp)) { in lpfc_cmpl_els_plogi()
2037 disc = (ndlp->nlp_flag & NLP_NPR_2B_DISC); in lpfc_cmpl_els_plogi()
2038 ndlp->nlp_flag &= ~NLP_NPR_2B_DISC; in lpfc_cmpl_els_plogi()
2045 ndlp->nlp_DID, ndlp->nlp_fc4_type, in lpfc_cmpl_els_plogi()
2052 ndlp->nlp_flag |= NLP_NPR_2B_DISC; in lpfc_cmpl_els_plogi()
2063 ndlp->nlp_flag |= NLP_NPR_2B_DISC; in lpfc_cmpl_els_plogi()
2075 ndlp->nlp_DID, irsp->ulpStatus, in lpfc_cmpl_els_plogi()
2079 lpfc_disc_state_machine(vport, ndlp, cmdiocb, in lpfc_cmpl_els_plogi()
2086 ndlp = lpfc_plogi_confirm_nport(phba, prsp->virt, ndlp); in lpfc_cmpl_els_plogi()
2087 lpfc_disc_state_machine(vport, ndlp, cmdiocb, in lpfc_cmpl_els_plogi()
2137 struct lpfc_nodelist *ndlp; in lpfc_issue_els_plogi() local
2143 ndlp = lpfc_findnode_did(vport, did); in lpfc_issue_els_plogi()
2145 if (ndlp) { in lpfc_issue_els_plogi()
2150 if ((ndlp->nlp_flag & NLP_UNREG_INP) && in lpfc_issue_els_plogi()
2151 ((ndlp->nlp_DID & Fabric_DID_MASK) != Fabric_DID_MASK) && in lpfc_issue_els_plogi()
2156 ndlp->nlp_defer_did, ndlp->nlp_DID, in lpfc_issue_els_plogi()
2157 ndlp->nlp_rpi, ndlp); in lpfc_issue_els_plogi()
2160 if (ndlp->nlp_defer_did == NLP_EVT_NOTHING_PENDING) in lpfc_issue_els_plogi()
2161 ndlp->nlp_defer_did = did; in lpfc_issue_els_plogi()
2164 if (!NLP_CHK_NODE_ACT(ndlp)) in lpfc_issue_els_plogi()
2165 ndlp = NULL; in lpfc_issue_els_plogi()
2170 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp, did, in lpfc_issue_els_plogi()
2177 ndlp->nlp_flag &= ~NLP_FCP_PRLI_RJT; in lpfc_issue_els_plogi()
2249 struct lpfc_nodelist *ndlp; in lpfc_cmpl_els_prli() local
2257 ndlp = (struct lpfc_nodelist *) cmdiocb->context1; in lpfc_cmpl_els_prli()
2259 ndlp->nlp_flag &= ~NLP_PRLI_SND; in lpfc_cmpl_els_prli()
2263 ndlp->fc4_prli_sent--; in lpfc_cmpl_els_prli()
2269 ndlp->nlp_DID); in lpfc_cmpl_els_prli()
2275 ndlp->nlp_DID, irsp->ulpStatus, irsp->un.ulpWord[4], in lpfc_cmpl_els_prli()
2276 vport->num_disc_nodes, ndlp->fc4_prli_sent); in lpfc_cmpl_els_prli()
2305 ndlp->nlp_DID, irsp->ulpStatus, in lpfc_cmpl_els_prli()
2306 irsp->un.ulpWord[4], ndlp->fc4_prli_sent); in lpfc_cmpl_els_prli()
2312 lpfc_disc_state_machine(vport, ndlp, cmdiocb, in lpfc_cmpl_els_prli()
2320 lpfc_disc_state_machine(vport, ndlp, cmdiocb, in lpfc_cmpl_els_prli()
2351 lpfc_issue_els_prli(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, in lpfc_issue_els_prli() argument
2372 ndlp->nlp_fc4_type |= NLP_FC4_NVME; in lpfc_issue_els_prli()
2373 local_nlp_type = ndlp->nlp_fc4_type; in lpfc_issue_els_prli()
2378 ndlp->nlp_type &= ~(NLP_FCP_TARGET | NLP_FCP_INITIATOR); in lpfc_issue_els_prli()
2379 ndlp->nlp_type &= ~(NLP_NVME_TARGET | NLP_NVME_INITIATOR); in lpfc_issue_els_prli()
2380 ndlp->nlp_fcp_info &= ~NLP_FCP_2_DEVICE; in lpfc_issue_els_prli()
2381 ndlp->nlp_flag &= ~(NLP_FIRSTBURST | NLP_NPR_2B_DISC); in lpfc_issue_els_prli()
2382 ndlp->nvme_fb_size = 0; in lpfc_issue_els_prli()
2396 ndlp->nlp_fc4_type, ndlp->nlp_DID); in lpfc_issue_els_prli()
2404 ndlp->nlp_fc4_type == NLP_FC4_NVME) { in lpfc_issue_els_prli()
2407 ndlp->nlp_type); in lpfc_issue_els_prli()
2408 lpfc_disc_state_machine(vport, ndlp, NULL, NLP_EVT_DEVICE_RM); in lpfc_issue_els_prli()
2412 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp, in lpfc_issue_els_prli()
2413 ndlp->nlp_DID, elscmd); in lpfc_issue_els_prli()
2491 ndlp->nlp_DID, 0, 0); in lpfc_issue_els_prli()
2496 ndlp->nlp_flag |= NLP_PRLI_SND; in lpfc_issue_els_prli()
2503 ndlp->fc4_prli_sent++; in lpfc_issue_els_prli()
2508 ndlp->nlp_flag &= ~NLP_PRLI_SND; in lpfc_issue_els_prli()
2665 struct lpfc_nodelist *ndlp; in lpfc_cmpl_els_adisc() local
2672 ndlp = (struct lpfc_nodelist *) cmdiocb->context1; in lpfc_cmpl_els_adisc()
2677 ndlp->nlp_DID); in lpfc_cmpl_els_adisc()
2683 disc = (ndlp->nlp_flag & NLP_NPR_2B_DISC); in lpfc_cmpl_els_adisc()
2684 ndlp->nlp_flag &= ~(NLP_ADISC_SND | NLP_NPR_2B_DISC); in lpfc_cmpl_els_adisc()
2690 ndlp->nlp_DID, irsp->ulpStatus, irsp->un.ulpWord[4], in lpfc_cmpl_els_adisc()
2695 ndlp->nlp_flag |= NLP_NPR_2B_DISC; in lpfc_cmpl_els_adisc()
2706 ndlp->nlp_flag |= NLP_NPR_2B_DISC; in lpfc_cmpl_els_adisc()
2715 ndlp->nlp_DID, irsp->ulpStatus, in lpfc_cmpl_els_adisc()
2719 lpfc_disc_state_machine(vport, ndlp, cmdiocb, in lpfc_cmpl_els_adisc()
2723 lpfc_disc_state_machine(vport, ndlp, cmdiocb, in lpfc_cmpl_els_adisc()
2755 lpfc_issue_els_adisc(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, in lpfc_issue_els_adisc() argument
2766 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp, in lpfc_issue_els_adisc()
2767 ndlp->nlp_DID, ELS_CMD_ADISC); in lpfc_issue_els_adisc()
2786 ndlp->nlp_DID, 0, 0); in lpfc_issue_els_adisc()
2791 ndlp->nlp_flag |= NLP_ADISC_SND; in lpfc_issue_els_adisc()
2796 ndlp->nlp_flag &= ~NLP_ADISC_SND; in lpfc_issue_els_adisc()
2820 struct lpfc_nodelist *ndlp = (struct lpfc_nodelist *) cmdiocb->context1; in lpfc_cmpl_els_logo() local
2821 struct lpfc_vport *vport = ndlp->vport; in lpfc_cmpl_els_logo()
2833 ndlp->nlp_flag &= ~NLP_LOGO_SND; in lpfc_cmpl_els_logo()
2839 ndlp->nlp_DID); in lpfc_cmpl_els_logo()
2845 ndlp->nlp_DID, irsp->ulpStatus, irsp->un.ulpWord[4], in lpfc_cmpl_els_logo()
2854 if (ndlp->nlp_flag & NLP_TARGET_REMOVE) { in lpfc_cmpl_els_logo()
2858 lpfc_disc_state_machine(vport, ndlp, cmdiocb, in lpfc_cmpl_els_logo()
2873 ndlp->nlp_DID, irsp->ulpStatus, in lpfc_cmpl_els_logo()
2883 lpfc_disc_state_machine(vport, ndlp, cmdiocb, NLP_EVT_CMPL_LOGO); in lpfc_cmpl_els_logo()
2918 if (ndlp->nlp_type & (NLP_FCP_TARGET | NLP_NVME_TARGET) && in lpfc_cmpl_els_logo()
2920 lpfc_cancel_retry_delay_tmo(vport, ndlp); in lpfc_cmpl_els_logo()
2922 ndlp->nlp_flag |= NLP_NPR_2B_DISC; in lpfc_cmpl_els_logo()
2928 ndlp->nlp_DID, irsp->ulpStatus, in lpfc_cmpl_els_logo()
2959 lpfc_issue_els_logo(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, in lpfc_issue_els_logo() argument
2970 if (ndlp->nlp_flag & NLP_LOGO_SND) { in lpfc_issue_els_logo()
2977 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp, in lpfc_issue_els_logo()
2978 ndlp->nlp_DID, ELS_CMD_LOGO); in lpfc_issue_els_logo()
2993 ndlp->nlp_DID, 0, 0); in lpfc_issue_els_logo()
2998 ndlp->nlp_flag |= NLP_LOGO_SND; in lpfc_issue_els_logo()
2999 ndlp->nlp_flag &= ~NLP_ISSUE_LOGO; in lpfc_issue_els_logo()
3004 ndlp->nlp_flag &= ~NLP_LOGO_SND; in lpfc_issue_els_logo()
3011 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_issue_els_logo()
3013 lpfc_nlp_set_state(vport, ndlp, NLP_STE_LOGO_ISSUE); in lpfc_issue_els_logo()
3187 struct lpfc_nodelist *ndlp; in lpfc_issue_els_scr() local
3191 ndlp = lpfc_findnode_did(vport, Fabric_Cntl_DID); in lpfc_issue_els_scr()
3192 if (!ndlp) { in lpfc_issue_els_scr()
3193 ndlp = lpfc_nlp_init(vport, Fabric_Cntl_DID); in lpfc_issue_els_scr()
3194 if (!ndlp) in lpfc_issue_els_scr()
3196 lpfc_enqueue_node(vport, ndlp); in lpfc_issue_els_scr()
3197 } else if (!NLP_CHK_NODE_ACT(ndlp)) { in lpfc_issue_els_scr()
3198 ndlp = lpfc_enable_node(vport, ndlp, NLP_STE_UNUSED_NODE); in lpfc_issue_els_scr()
3199 if (!ndlp) in lpfc_issue_els_scr()
3203 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp, in lpfc_issue_els_scr()
3204 ndlp->nlp_DID, ELS_CMD_SCR); in lpfc_issue_els_scr()
3210 lpfc_nlp_put(ndlp); in lpfc_issue_els_scr()
3225 ndlp->nlp_DID, 0, 0); in lpfc_issue_els_scr()
3235 lpfc_nlp_put(ndlp); in lpfc_issue_els_scr()
3243 lpfc_nlp_put(ndlp); in lpfc_issue_els_scr()
3272 struct lpfc_nodelist *ndlp; in lpfc_issue_els_rscn() local
3287 ndlp = lpfc_findnode_mapped(vport); in lpfc_issue_els_rscn()
3288 if (!ndlp) in lpfc_issue_els_rscn()
3293 ndlp = lpfc_findnode_did(vport, nportid); in lpfc_issue_els_rscn()
3294 if (!ndlp) { in lpfc_issue_els_rscn()
3296 ndlp = lpfc_nlp_init(vport, nportid); in lpfc_issue_els_rscn()
3297 if (!ndlp) in lpfc_issue_els_rscn()
3299 lpfc_enqueue_node(vport, ndlp); in lpfc_issue_els_rscn()
3300 } else if (!NLP_CHK_NODE_ACT(ndlp)) { in lpfc_issue_els_rscn()
3301 ndlp = lpfc_enable_node(vport, ndlp, in lpfc_issue_els_rscn()
3303 if (!ndlp) in lpfc_issue_els_rscn()
3308 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp, in lpfc_issue_els_rscn()
3309 ndlp->nlp_DID, ELS_CMD_RSCN_XMT); in lpfc_issue_els_rscn()
3315 lpfc_nlp_put(ndlp); in lpfc_issue_els_rscn()
3334 ndlp->nlp_DID, 0, 0); in lpfc_issue_els_rscn()
3344 lpfc_nlp_put(ndlp); in lpfc_issue_els_rscn()
3352 lpfc_nlp_put(ndlp); in lpfc_issue_els_rscn()
3389 struct lpfc_nodelist *ndlp; in lpfc_issue_els_farpr() local
3393 ndlp = lpfc_findnode_did(vport, nportid); in lpfc_issue_els_farpr()
3394 if (!ndlp) { in lpfc_issue_els_farpr()
3395 ndlp = lpfc_nlp_init(vport, nportid); in lpfc_issue_els_farpr()
3396 if (!ndlp) in lpfc_issue_els_farpr()
3398 lpfc_enqueue_node(vport, ndlp); in lpfc_issue_els_farpr()
3399 } else if (!NLP_CHK_NODE_ACT(ndlp)) { in lpfc_issue_els_farpr()
3400 ndlp = lpfc_enable_node(vport, ndlp, NLP_STE_UNUSED_NODE); in lpfc_issue_els_farpr()
3401 if (!ndlp) in lpfc_issue_els_farpr()
3405 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp, in lpfc_issue_els_farpr()
3406 ndlp->nlp_DID, ELS_CMD_RNID); in lpfc_issue_els_farpr()
3411 lpfc_nlp_put(ndlp); in lpfc_issue_els_farpr()
3441 ndlp->nlp_DID, 0, 0); in lpfc_issue_els_farpr()
3451 lpfc_nlp_put(ndlp); in lpfc_issue_els_farpr()
3485 struct lpfc_nodelist *ndlp; in lpfc_issue_els_rdf() local
3490 ndlp = lpfc_findnode_did(vport, Fabric_Cntl_DID); in lpfc_issue_els_rdf()
3491 if (!ndlp) { in lpfc_issue_els_rdf()
3492 ndlp = lpfc_nlp_init(vport, Fabric_Cntl_DID); in lpfc_issue_els_rdf()
3493 if (!ndlp) in lpfc_issue_els_rdf()
3495 lpfc_enqueue_node(vport, ndlp); in lpfc_issue_els_rdf()
3496 } else if (!NLP_CHK_NODE_ACT(ndlp)) { in lpfc_issue_els_rdf()
3497 ndlp = lpfc_enable_node(vport, ndlp, NLP_STE_UNUSED_NODE); in lpfc_issue_els_rdf()
3498 if (!ndlp) in lpfc_issue_els_rdf()
3504 lpfc_nlp_put(ndlp); in lpfc_issue_els_rdf()
3508 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp, in lpfc_issue_els_rdf()
3509 ndlp->nlp_DID, ELS_CMD_RDF); in lpfc_issue_els_rdf()
3514 lpfc_nlp_put(ndlp); in lpfc_issue_els_rdf()
3536 ndlp->nlp_DID, 0, 0); in lpfc_issue_els_rdf()
3540 ndlp->nlp_DID); in lpfc_issue_els_rdf()
3549 lpfc_nlp_put(ndlp); in lpfc_issue_els_rdf()
3557 lpfc_nlp_put(ndlp); in lpfc_issue_els_rdf()
3633 struct lpfc_nodelist *ndlp = from_timer(ndlp, t, nlp_delayfunc); in lpfc_els_retry_delay() local
3634 struct lpfc_vport *vport = ndlp->vport; in lpfc_els_retry_delay()
3637 struct lpfc_work_evt *evtp = &ndlp->els_retry_evt; in lpfc_els_retry_delay()
3648 evtp->evt_arg1 = lpfc_nlp_get(ndlp); in lpfc_els_retry_delay()
3668 lpfc_els_retry_delay_handler(struct lpfc_nodelist *ndlp) in lpfc_els_retry_delay_handler() argument
3670 struct lpfc_vport *vport = ndlp->vport; in lpfc_els_retry_delay_handler()
3675 cmd = ndlp->nlp_last_elscmd; in lpfc_els_retry_delay_handler()
3676 ndlp->nlp_last_elscmd = 0; in lpfc_els_retry_delay_handler()
3678 if (!(ndlp->nlp_flag & NLP_DELAY_TMO)) { in lpfc_els_retry_delay_handler()
3683 ndlp->nlp_flag &= ~NLP_DELAY_TMO; in lpfc_els_retry_delay_handler()
3690 del_timer_sync(&ndlp->nlp_delayfunc); in lpfc_els_retry_delay_handler()
3691 retry = ndlp->nlp_retry; in lpfc_els_retry_delay_handler()
3692 ndlp->nlp_retry = 0; in lpfc_els_retry_delay_handler()
3696 lpfc_issue_els_flogi(vport, ndlp, retry); in lpfc_els_retry_delay_handler()
3699 if (!lpfc_issue_els_plogi(vport, ndlp->nlp_DID, retry)) { in lpfc_els_retry_delay_handler()
3700 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_retry_delay_handler()
3701 lpfc_nlp_set_state(vport, ndlp, NLP_STE_PLOGI_ISSUE); in lpfc_els_retry_delay_handler()
3705 if (!lpfc_issue_els_adisc(vport, ndlp, retry)) { in lpfc_els_retry_delay_handler()
3706 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_retry_delay_handler()
3707 lpfc_nlp_set_state(vport, ndlp, NLP_STE_ADISC_ISSUE); in lpfc_els_retry_delay_handler()
3712 if (!lpfc_issue_els_prli(vport, ndlp, retry)) { in lpfc_els_retry_delay_handler()
3713 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_retry_delay_handler()
3714 lpfc_nlp_set_state(vport, ndlp, NLP_STE_PRLI_ISSUE); in lpfc_els_retry_delay_handler()
3718 if (!lpfc_issue_els_logo(vport, ndlp, retry)) { in lpfc_els_retry_delay_handler()
3719 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_retry_delay_handler()
3720 lpfc_nlp_set_state(vport, ndlp, NLP_STE_LOGO_ISSUE); in lpfc_els_retry_delay_handler()
3725 lpfc_issue_els_fdisc(vport, ndlp, retry); in lpfc_els_retry_delay_handler()
3815 struct lpfc_nodelist *ndlp = (struct lpfc_nodelist *) cmdiocb->context1; in lpfc_els_retry() local
3835 if (ndlp && NLP_CHK_NODE_ACT(ndlp)) in lpfc_els_retry()
3836 did = ndlp->nlp_DID; in lpfc_els_retry()
3840 ndlp = lpfc_findnode_did(vport, did); in lpfc_els_retry()
3841 if ((!ndlp || !NLP_CHK_NODE_ACT(ndlp)) in lpfc_els_retry()
3848 *(((uint32_t *) irsp) + 7), irsp->un.ulpWord[4], ndlp->nlp_DID); in lpfc_els_retry()
3859 lpfc_set_rrq_active(phba, ndlp, in lpfc_els_retry()
4090 ndlp->nlp_flag |= NLP_FCP_PRLI_RJT; in lpfc_els_retry()
4187 if (ndlp && NLP_CHK_NODE_ACT(ndlp) && delay) { in lpfc_els_retry()
4189 ndlp->nlp_retry = cmdiocb->retry; in lpfc_els_retry()
4192 mod_timer(&ndlp->nlp_delayfunc, in lpfc_els_retry()
4195 ndlp->nlp_flag |= NLP_DELAY_TMO; in lpfc_els_retry()
4198 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_retry()
4201 lpfc_nlp_set_state(vport, ndlp, in lpfc_els_retry()
4204 lpfc_nlp_set_state(vport, ndlp, in lpfc_els_retry()
4206 ndlp->nlp_last_elscmd = cmd; in lpfc_els_retry()
4212 lpfc_issue_els_flogi(vport, ndlp, cmdiocb->retry); in lpfc_els_retry()
4215 lpfc_issue_els_fdisc(vport, ndlp, cmdiocb->retry); in lpfc_els_retry()
4218 if (ndlp && NLP_CHK_NODE_ACT(ndlp)) { in lpfc_els_retry()
4219 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_retry()
4220 lpfc_nlp_set_state(vport, ndlp, in lpfc_els_retry()
4226 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_retry()
4227 lpfc_nlp_set_state(vport, ndlp, NLP_STE_ADISC_ISSUE); in lpfc_els_retry()
4228 lpfc_issue_els_adisc(vport, ndlp, cmdiocb->retry); in lpfc_els_retry()
4232 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_retry()
4233 lpfc_nlp_set_state(vport, ndlp, NLP_STE_PRLI_ISSUE); in lpfc_els_retry()
4234 lpfc_issue_els_prli(vport, ndlp, cmdiocb->retry); in lpfc_els_retry()
4237 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_retry()
4238 lpfc_nlp_set_state(vport, ndlp, NLP_STE_LOGO_ISSUE); in lpfc_els_retry()
4239 lpfc_issue_els_logo(vport, ndlp, cmdiocb->retry); in lpfc_els_retry()
4344 struct lpfc_nodelist *ndlp; in lpfc_els_free_iocb() local
4346 ndlp = (struct lpfc_nodelist *)elsiocb->context1; in lpfc_els_free_iocb()
4347 if (ndlp) { in lpfc_els_free_iocb()
4348 if (ndlp->nlp_flag & NLP_DEFER_RM) { in lpfc_els_free_iocb()
4349 lpfc_nlp_put(ndlp); in lpfc_els_free_iocb()
4354 if (!lpfc_nlp_not_used(ndlp)) { in lpfc_els_free_iocb()
4358 ndlp->nlp_flag &= ~NLP_DEFER_RM; in lpfc_els_free_iocb()
4362 lpfc_nlp_put(ndlp); in lpfc_els_free_iocb()
4429 struct lpfc_nodelist *ndlp = (struct lpfc_nodelist *) cmdiocb->context1; in lpfc_cmpl_els_logo_acc() local
4436 irsp->ulpStatus, irsp->un.ulpWord[4], ndlp->nlp_DID); in lpfc_cmpl_els_logo_acc()
4441 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_state, in lpfc_cmpl_els_logo_acc()
4442 ndlp->nlp_rpi); in lpfc_cmpl_els_logo_acc()
4444 if (ndlp->nlp_state == NLP_STE_NPR_NODE) { in lpfc_cmpl_els_logo_acc()
4446 if (!lpfc_nlp_not_used(ndlp)) { in lpfc_cmpl_els_logo_acc()
4450 lpfc_unreg_rpi(vport, ndlp); in lpfc_cmpl_els_logo_acc()
4483 struct lpfc_nodelist *ndlp = (struct lpfc_nodelist *)pmb->ctx_ndlp; in lpfc_mbx_cmpl_dflt_rpi() local
4491 if (ndlp) { in lpfc_mbx_cmpl_dflt_rpi()
4492 lpfc_printf_vlog(ndlp->vport, KERN_INFO, LOG_NODE, in lpfc_mbx_cmpl_dflt_rpi()
4494 ndlp->nlp_rpi, ndlp->nlp_DID, ndlp->nlp_flag, in lpfc_mbx_cmpl_dflt_rpi()
4495 kref_read(&ndlp->kref), in lpfc_mbx_cmpl_dflt_rpi()
4496 ndlp->nlp_usg_map, ndlp); in lpfc_mbx_cmpl_dflt_rpi()
4497 if (NLP_CHK_NODE_ACT(ndlp)) { in lpfc_mbx_cmpl_dflt_rpi()
4498 lpfc_nlp_put(ndlp); in lpfc_mbx_cmpl_dflt_rpi()
4503 lpfc_nlp_not_used(ndlp); in lpfc_mbx_cmpl_dflt_rpi()
4505 lpfc_drop_node(ndlp->vport, ndlp); in lpfc_mbx_cmpl_dflt_rpi()
4532 struct lpfc_nodelist *ndlp = (struct lpfc_nodelist *) cmdiocb->context1; in lpfc_cmpl_els_rsp() local
4533 struct lpfc_vport *vport = ndlp ? ndlp->vport : NULL; in lpfc_cmpl_els_rsp()
4555 if (ndlp && NLP_CHK_NODE_ACT(ndlp) && in lpfc_cmpl_els_rsp()
4560 if (!(ndlp->nlp_flag & NLP_RM_DFLT_RPI)) in lpfc_cmpl_els_rsp()
4565 if (!ndlp || !NLP_CHK_NODE_ACT(ndlp) || lpfc_els_chk_latt(vport)) { in lpfc_cmpl_els_rsp()
4574 if (ndlp && NLP_CHK_NODE_ACT(ndlp) && in lpfc_cmpl_els_rsp()
4575 (ndlp->nlp_flag & NLP_RM_DFLT_RPI)) in lpfc_cmpl_els_rsp()
4576 if (lpfc_nlp_not_used(ndlp)) { in lpfc_cmpl_els_rsp()
4577 ndlp = NULL; in lpfc_cmpl_els_rsp()
4597 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_state, in lpfc_cmpl_els_rsp()
4598 ndlp->nlp_rpi); in lpfc_cmpl_els_rsp()
4601 && (ndlp->nlp_flag & NLP_ACC_REGLOGIN)) { in lpfc_cmpl_els_rsp()
4602 if (!lpfc_unreg_rpi(vport, ndlp) && in lpfc_cmpl_els_rsp()
4604 (ndlp->nlp_state == NLP_STE_PLOGI_ISSUE || in lpfc_cmpl_els_rsp()
4605 ndlp->nlp_state == NLP_STE_REG_LOGIN_ISSUE)) { in lpfc_cmpl_els_rsp()
4610 ndlp->nlp_DID, ndlp->nlp_state, in lpfc_cmpl_els_rsp()
4611 ndlp->nlp_rpi, ndlp->nlp_flag); in lpfc_cmpl_els_rsp()
4625 mbox->ctx_ndlp = lpfc_nlp_get(ndlp); in lpfc_cmpl_els_rsp()
4627 if (ndlp->nlp_flag & NLP_RM_DFLT_RPI) { in lpfc_cmpl_els_rsp()
4633 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_cmpl_els_rsp()
4634 lpfc_nlp_set_state(vport, ndlp, in lpfc_cmpl_els_rsp()
4638 ndlp->nlp_flag |= NLP_REG_LOGIN_SEND; in lpfc_cmpl_els_rsp()
4646 lpfc_nlp_put(ndlp); in lpfc_cmpl_els_rsp()
4647 ndlp->nlp_flag &= ~NLP_REG_LOGIN_SEND; in lpfc_cmpl_els_rsp()
4653 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_state, in lpfc_cmpl_els_rsp()
4654 ndlp->nlp_rpi); in lpfc_cmpl_els_rsp()
4656 if (lpfc_nlp_not_used(ndlp)) { in lpfc_cmpl_els_rsp()
4657 ndlp = NULL; in lpfc_cmpl_els_rsp()
4667 ndlp->nlp_flag & NLP_ACC_REGLOGIN) { in lpfc_cmpl_els_rsp()
4668 if (lpfc_nlp_not_used(ndlp)) { in lpfc_cmpl_els_rsp()
4669 ndlp = NULL; in lpfc_cmpl_els_rsp()
4687 if (ndlp && NLP_CHK_NODE_ACT(ndlp) && shost) { in lpfc_cmpl_els_rsp()
4690 ndlp->nlp_flag &= ~NLP_ACC_REGLOGIN; in lpfc_cmpl_els_rsp()
4691 ndlp->nlp_flag &= ~NLP_RM_DFLT_RPI; in lpfc_cmpl_els_rsp()
4700 if (lpfc_nlp_not_used(ndlp)) in lpfc_cmpl_els_rsp()
4740 struct lpfc_iocbq *oldiocb, struct lpfc_nodelist *ndlp, in lpfc_els_rsp_acc() argument
4760 ndlp, ndlp->nlp_DID, ELS_CMD_ACC); in lpfc_els_rsp_acc()
4763 ndlp->nlp_flag &= ~NLP_LOGO_ACC; in lpfc_els_rsp_acc()
4777 ndlp->nlp_DID, ndlp->nlp_flag, 0); in lpfc_els_rsp_acc()
4783 ndlp, ndlp->nlp_DID, ELS_CMD_ACC); in lpfc_els_rsp_acc()
4840 ndlp->nlp_DID, ndlp->nlp_flag, 0); in lpfc_els_rsp_acc()
4845 ndlp, ndlp->nlp_DID, ELS_CMD_PRLO); in lpfc_els_rsp_acc()
4862 ndlp->nlp_DID, ndlp->nlp_flag, 0); in lpfc_els_rsp_acc()
4867 if (ndlp->nlp_flag & NLP_LOGO_ACC) { in lpfc_els_rsp_acc()
4869 if (!(ndlp->nlp_flag & NLP_RPI_REGISTERED || in lpfc_els_rsp_acc()
4870 ndlp->nlp_flag & NLP_REG_LOGIN_SEND)) in lpfc_els_rsp_acc()
4871 ndlp->nlp_flag &= ~NLP_LOGO_ACC; in lpfc_els_rsp_acc()
4911 struct lpfc_iocbq *oldiocb, struct lpfc_nodelist *ndlp, in lpfc_els_rsp_reject() argument
4923 elsiocb = lpfc_prep_els_iocb(vport, 0, cmdsize, oldiocb->retry, ndlp, in lpfc_els_rsp_reject()
4924 ndlp->nlp_DID, ELS_CMD_LS_RJT); in lpfc_els_rsp_reject()
4947 elsiocb->iocb.ulpContext, ndlp->nlp_DID, in lpfc_els_rsp_reject()
4948 ndlp->nlp_flag, ndlp->nlp_state, ndlp->nlp_rpi); in lpfc_els_rsp_reject()
4951 ndlp->nlp_DID, ndlp->nlp_flag, rejectError); in lpfc_els_rsp_reject()
4985 struct lpfc_nodelist *ndlp) in lpfc_els_rsp_adisc_acc() argument
4996 elsiocb = lpfc_prep_els_iocb(vport, 0, cmdsize, oldiocb->retry, ndlp, in lpfc_els_rsp_adisc_acc()
4997 ndlp->nlp_DID, ELS_CMD_ACC); in lpfc_els_rsp_adisc_acc()
5011 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_state, in lpfc_els_rsp_adisc_acc()
5012 ndlp->nlp_rpi); in lpfc_els_rsp_adisc_acc()
5026 ndlp->nlp_DID, ndlp->nlp_flag, 0); in lpfc_els_rsp_adisc_acc()
5042 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_state, in lpfc_els_rsp_adisc_acc()
5043 ndlp->nlp_rpi, vport->fc_flag); in lpfc_els_rsp_adisc_acc()
5068 struct lpfc_nodelist *ndlp) in lpfc_els_rsp_prli_acc() argument
5107 elsiocb = lpfc_prep_els_iocb(vport, 0, cmdsize, oldiocb->retry, ndlp, in lpfc_els_rsp_prli_acc()
5108 ndlp->nlp_DID, elsrspcmd); in lpfc_els_rsp_prli_acc()
5122 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_state, in lpfc_els_rsp_prli_acc()
5123 ndlp->nlp_rpi); in lpfc_els_rsp_prli_acc()
5140 if ((ndlp->nlp_type & NLP_FCP_TARGET) && in lpfc_els_rsp_prli_acc()
5180 npr_nvme->word5, ndlp->nlp_flag, in lpfc_els_rsp_prli_acc()
5181 ndlp->nlp_fcp_info, ndlp->nlp_type); in lpfc_els_rsp_prli_acc()
5188 prli_fc4_req, ndlp->nlp_fc4_type, in lpfc_els_rsp_prli_acc()
5189 ndlp->nlp_DID); in lpfc_els_rsp_prli_acc()
5193 ndlp->nlp_DID, ndlp->nlp_flag, 0); in lpfc_els_rsp_prli_acc()
5234 struct lpfc_iocbq *oldiocb, struct lpfc_nodelist *ndlp) in lpfc_els_rsp_rnid_acc() argument
5249 elsiocb = lpfc_prep_els_iocb(vport, 0, cmdsize, oldiocb->retry, ndlp, in lpfc_els_rsp_rnid_acc()
5250 ndlp->nlp_DID, ELS_CMD_ACC); in lpfc_els_rsp_rnid_acc()
5293 ndlp->nlp_DID, ndlp->nlp_flag, 0); in lpfc_els_rsp_rnid_acc()
5316 struct lpfc_iocbq *iocb, struct lpfc_nodelist *ndlp) in lpfc_els_clear_rrq() argument
5342 ndlp->nlp_DID, ndlp->nlp_flag, rrq->rrq_exchg); in lpfc_els_clear_rrq()
5347 prrq = lpfc_get_active_rrq(vport, xri, ndlp->nlp_DID); in lpfc_els_clear_rrq()
5366 struct lpfc_iocbq *oldiocb, struct lpfc_nodelist *ndlp) in lpfc_els_rsp_echo_acc() argument
5381 elsiocb = lpfc_prep_els_iocb(vport, 0, cmdsize, oldiocb->retry, ndlp, in lpfc_els_rsp_echo_acc()
5382 ndlp->nlp_DID, ELS_CMD_ACC); in lpfc_els_rsp_echo_acc()
5400 ndlp->nlp_DID, ndlp->nlp_flag, 0); in lpfc_els_rsp_echo_acc()
5436 struct lpfc_nodelist *ndlp, *next_ndlp; in lpfc_els_disc_adisc() local
5440 list_for_each_entry_safe(ndlp, next_ndlp, &vport->fc_nodes, nlp_listp) { in lpfc_els_disc_adisc()
5441 if (!NLP_CHK_NODE_ACT(ndlp)) in lpfc_els_disc_adisc()
5443 if (ndlp->nlp_state == NLP_STE_NPR_NODE && in lpfc_els_disc_adisc()
5444 (ndlp->nlp_flag & NLP_NPR_2B_DISC) != 0 && in lpfc_els_disc_adisc()
5445 (ndlp->nlp_flag & NLP_NPR_ADISC) != 0) { in lpfc_els_disc_adisc()
5447 ndlp->nlp_flag &= ~NLP_NPR_ADISC; in lpfc_els_disc_adisc()
5449 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_disc_adisc()
5450 lpfc_nlp_set_state(vport, ndlp, NLP_STE_ADISC_ISSUE); in lpfc_els_disc_adisc()
5451 lpfc_issue_els_adisc(vport, ndlp, 0); in lpfc_els_disc_adisc()
5494 struct lpfc_nodelist *ndlp, *next_ndlp; in lpfc_els_disc_plogi() local
5498 list_for_each_entry_safe(ndlp, next_ndlp, &vport->fc_nodes, nlp_listp) { in lpfc_els_disc_plogi()
5499 if (!NLP_CHK_NODE_ACT(ndlp)) in lpfc_els_disc_plogi()
5501 if (ndlp->nlp_state == NLP_STE_NPR_NODE && in lpfc_els_disc_plogi()
5502 (ndlp->nlp_flag & NLP_NPR_2B_DISC) != 0 && in lpfc_els_disc_plogi()
5503 (ndlp->nlp_flag & NLP_DELAY_TMO) == 0 && in lpfc_els_disc_plogi()
5504 (ndlp->nlp_flag & NLP_NPR_ADISC) == 0) { in lpfc_els_disc_plogi()
5505 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_disc_plogi()
5506 lpfc_nlp_set_state(vport, ndlp, NLP_STE_PLOGI_ISSUE); in lpfc_els_disc_plogi()
5507 lpfc_issue_els_plogi(vport, ndlp->nlp_DID, 0); in lpfc_els_disc_plogi()
5930 struct lpfc_vport *vport, struct lpfc_nodelist *ndlp) in lpfc_rdp_res_attach_port_names() argument
5941 memcpy(desc->port_names.wwnn, &ndlp->nlp_nodename, in lpfc_rdp_res_attach_port_names()
5944 memcpy(desc->port_names.wwpn, &ndlp->nlp_portname, in lpfc_rdp_res_attach_port_names()
5956 struct lpfc_nodelist *ndlp = rdp_context->ndlp; in lpfc_els_rdp_cmpl() local
5957 struct lpfc_vport *vport = ndlp->vport; in lpfc_els_rdp_cmpl()
5975 lpfc_max_els_tries, rdp_context->ndlp, in lpfc_els_rdp_cmpl()
5976 rdp_context->ndlp->nlp_DID, ELS_CMD_ACC); in lpfc_els_rdp_cmpl()
5977 lpfc_nlp_put(ndlp); in lpfc_els_rdp_cmpl()
5989 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_state, in lpfc_els_rdp_cmpl()
5990 ndlp->nlp_rpi); in lpfc_els_rdp_cmpl()
6017 (len + pcmd), vport, ndlp); in lpfc_els_rdp_cmpl()
6061 ndlp, ndlp->nlp_DID, ELS_CMD_LS_RJT); in lpfc_els_rdp_cmpl()
6062 lpfc_nlp_put(ndlp); in lpfc_els_rdp_cmpl()
6100 mbox->vport = rdp_context->ndlp->vport; in lpfc_get_rdp_info()
6134 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_rdp() argument
6184 rdp_context->ndlp = lpfc_nlp_get(ndlp); in lpfc_els_rcv_rdp()
6189 lpfc_printf_vlog(ndlp->vport, KERN_WARNING, LOG_ELS, in lpfc_els_rcv_rdp()
6193 lpfc_nlp_put(ndlp); in lpfc_els_rcv_rdp()
6206 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, NULL); in lpfc_els_rcv_rdp()
6218 struct lpfc_nodelist *ndlp; in lpfc_els_lcb_rsp() local
6228 ndlp = lcb_context->ndlp; in lpfc_els_lcb_rsp()
6253 lpfc_max_els_tries, ndlp, in lpfc_els_lcb_rsp()
6254 ndlp->nlp_DID, ELS_CMD_ACC); in lpfc_els_lcb_rsp()
6257 lpfc_nlp_put(ndlp); in lpfc_els_lcb_rsp()
6289 lpfc_max_els_tries, ndlp, in lpfc_els_lcb_rsp()
6290 ndlp->nlp_DID, ELS_CMD_LS_RJT); in lpfc_els_lcb_rsp()
6291 lpfc_nlp_put(ndlp); in lpfc_els_lcb_rsp()
6404 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_lcb() argument
6456 lcb_context->ndlp = lpfc_nlp_get(ndlp); in lpfc_els_rcv_lcb()
6458 lpfc_printf_vlog(ndlp->vport, KERN_ERR, LOG_TRACE_EVENT, in lpfc_els_rcv_lcb()
6461 lpfc_nlp_put(ndlp); in lpfc_els_rcv_lcb()
6469 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, NULL); in lpfc_els_rcv_lcb()
6604 struct lpfc_nodelist *ndlp = NULL; in lpfc_rscn_recovery_check() local
6607 list_for_each_entry(ndlp, &vport->fc_nodes, nlp_listp) { in lpfc_rscn_recovery_check()
6608 if (!NLP_CHK_NODE_ACT(ndlp) || in lpfc_rscn_recovery_check()
6609 (ndlp->nlp_state == NLP_STE_UNUSED_NODE) || in lpfc_rscn_recovery_check()
6610 !lpfc_rscn_payload_check(vport, ndlp->nlp_DID)) in lpfc_rscn_recovery_check()
6620 switch (ndlp->nlp_state) { in lpfc_rscn_recovery_check()
6632 if (ndlp->nlp_fc4_type & NLP_FC4_NVME && in lpfc_rscn_recovery_check()
6633 ndlp->nlp_type & (NLP_NVME_TARGET | NLP_NVME_DISCOVERY)) in lpfc_rscn_recovery_check()
6634 lpfc_nvme_rescan_port(vport, ndlp); in lpfc_rscn_recovery_check()
6636 lpfc_disc_state_machine(vport, ndlp, NULL, in lpfc_rscn_recovery_check()
6638 lpfc_cancel_retry_delay_tmo(vport, ndlp); in lpfc_rscn_recovery_check()
6710 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_rscn() argument
6745 lpfc_els_rsp_acc(vport, ELS_CMD_ACC, cmdiocb, ndlp, NULL); in lpfc_els_rcv_rscn()
6750 if (ndlp->nlp_fc4_type & NLP_FC4_NVME && in lpfc_els_rcv_rscn()
6751 ndlp->nlp_type & (NLP_NVME_TARGET | NLP_NVME_DISCOVERY)) in lpfc_els_rcv_rscn()
6752 lpfc_nvme_rescan_port(vport, ndlp); in lpfc_els_rcv_rscn()
6762 ndlp->nlp_DID, vport->port_state, ndlp->nlp_flag); in lpfc_els_rcv_rscn()
6764 lpfc_els_rsp_acc(vport, ELS_CMD_ACC, cmdiocb, ndlp, NULL); in lpfc_els_rcv_rscn()
6792 ndlp->nlp_DID, vport->port_state, in lpfc_els_rcv_rscn()
6793 ndlp->nlp_flag); in lpfc_els_rcv_rscn()
6796 ndlp, NULL); in lpfc_els_rcv_rscn()
6807 lpfc_els_rsp_acc(vport, ELS_CMD_ACC, cmdiocb, ndlp, NULL); in lpfc_els_rcv_rscn()
6821 ndlp->nlp_DID, vport->port_state, ndlp->nlp_flag); in lpfc_els_rcv_rscn()
6873 lpfc_els_rsp_acc(vport, ELS_CMD_ACC, cmdiocb, ndlp, NULL); in lpfc_els_rcv_rscn()
6880 ndlp->nlp_DID, vport->port_state, ndlp->nlp_flag); in lpfc_els_rcv_rscn()
6895 lpfc_els_rsp_acc(vport, ELS_CMD_ACC, cmdiocb, ndlp, NULL); in lpfc_els_rcv_rscn()
6920 struct lpfc_nodelist *ndlp; in lpfc_els_handle_rscn() local
6943 ndlp = lpfc_findnode_did(vport, NameServer_DID); in lpfc_els_handle_rscn()
6944 if (ndlp && NLP_CHK_NODE_ACT(ndlp) in lpfc_els_handle_rscn()
6945 && ndlp->nlp_state == NLP_STE_UNMAPPED_NODE) { in lpfc_els_handle_rscn()
6962 if (ndlp) { in lpfc_els_handle_rscn()
6963 ndlp = lpfc_enable_node(vport, ndlp, in lpfc_els_handle_rscn()
6965 if (!ndlp) { in lpfc_els_handle_rscn()
6969 ndlp->nlp_prev_state = NLP_STE_UNUSED_NODE; in lpfc_els_handle_rscn()
6971 ndlp = lpfc_nlp_init(vport, NameServer_DID); in lpfc_els_handle_rscn()
6972 if (!ndlp) { in lpfc_els_handle_rscn()
6976 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_handle_rscn()
6977 lpfc_nlp_set_state(vport, ndlp, NLP_STE_PLOGI_ISSUE); in lpfc_els_handle_rscn()
6979 ndlp->nlp_type |= NLP_FABRIC; in lpfc_els_handle_rscn()
7018 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_flogi() argument
7052 (void) lpfc_check_sparm(vport, ndlp, sp, CLASS3, 1); in lpfc_els_rcv_flogi()
7155 lpfc_els_rsp_acc(vport, ELS_CMD_FLOGI, cmdiocb, ndlp, NULL); in lpfc_els_rcv_flogi()
7181 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_rnid() argument
7200 lpfc_els_rsp_rnid_acc(vport, rn->Format, cmdiocb, ndlp); in lpfc_els_rcv_rnid()
7208 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, in lpfc_els_rcv_rnid()
7225 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_echo() argument
7234 lpfc_els_rsp_echo_acc(vport, pcmd, cmdiocb, ndlp); in lpfc_els_rcv_echo()
7253 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_lirr() argument
7262 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, NULL); in lpfc_els_rcv_lirr()
7284 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_rrq() argument
7286 lpfc_els_rsp_acc(vport, ELS_CMD_ACC, cmdiocb, ndlp, NULL); in lpfc_els_rcv_rrq()
7288 lpfc_els_clear_rrq(vport, cmdiocb, ndlp); in lpfc_els_rcv_rrq()
7318 struct lpfc_nodelist *ndlp; in lpfc_els_rsp_rls_acc() local
7325 ndlp = (struct lpfc_nodelist *)pmb->ctx_ndlp; in lpfc_els_rsp_rls_acc()
7338 lpfc_max_els_tries, ndlp, in lpfc_els_rsp_rls_acc()
7339 ndlp->nlp_DID, ELS_CMD_ACC); in lpfc_els_rsp_rls_acc()
7342 lpfc_nlp_put(ndlp); in lpfc_els_rsp_rls_acc()
7366 lpfc_printf_vlog(ndlp->vport, KERN_INFO, LOG_ELS, in lpfc_els_rsp_rls_acc()
7370 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_state, in lpfc_els_rsp_rls_acc()
7371 ndlp->nlp_rpi); in lpfc_els_rsp_rls_acc()
7398 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_rls() argument
7404 if ((ndlp->nlp_state != NLP_STE_UNMAPPED_NODE) && in lpfc_els_rcv_rls()
7405 (ndlp->nlp_state != NLP_STE_MAPPED_NODE)) in lpfc_els_rcv_rls()
7415 mbox->ctx_ndlp = lpfc_nlp_get(ndlp); in lpfc_els_rcv_rls()
7425 lpfc_nlp_put(ndlp); in lpfc_els_rcv_rls()
7434 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, NULL); in lpfc_els_rcv_rls()
7461 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_rtv() argument
7471 if ((ndlp->nlp_state != NLP_STE_UNMAPPED_NODE) && in lpfc_els_rcv_rtv()
7472 (ndlp->nlp_state != NLP_STE_MAPPED_NODE)) in lpfc_els_rcv_rtv()
7478 lpfc_max_els_tries, ndlp, in lpfc_els_rcv_rtv()
7479 ndlp->nlp_DID, ELS_CMD_ACC); in lpfc_els_rcv_rtv()
7502 lpfc_printf_vlog(ndlp->vport, KERN_INFO, LOG_ELS, in lpfc_els_rcv_rtv()
7507 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_state, in lpfc_els_rcv_rtv()
7508 ndlp->nlp_rpi, in lpfc_els_rcv_rtv()
7522 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, NULL); in lpfc_els_rcv_rtv()
7540 lpfc_issue_els_rrq(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, in lpfc_issue_els_rrq() argument
7551 if (ndlp != rrq->ndlp) in lpfc_issue_els_rrq()
7552 ndlp = rrq->ndlp; in lpfc_issue_els_rrq()
7553 if (!ndlp || !NLP_CHK_NODE_ACT(ndlp)) in lpfc_issue_els_rrq()
7558 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, 0, ndlp, did, in lpfc_issue_els_rrq()
7606 struct lpfc_nodelist *ndlp = lpfc_findnode_did(rrq->vport, in lpfc_send_rrq() local
7608 if (!ndlp) in lpfc_send_rrq()
7611 if (lpfc_test_rrq_active(phba, ndlp, rrq->xritag)) in lpfc_send_rrq()
7612 return lpfc_issue_els_rrq(rrq->vport, ndlp, in lpfc_send_rrq()
7639 struct lpfc_iocbq *oldiocb, struct lpfc_nodelist *ndlp) in lpfc_els_rsp_rpl_acc() argument
7647 elsiocb = lpfc_prep_els_iocb(vport, 0, cmdsize, oldiocb->retry, ndlp, in lpfc_els_rsp_rpl_acc()
7648 ndlp->nlp_DID, ELS_CMD_ACC); in lpfc_els_rsp_rpl_acc()
7678 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_state, in lpfc_els_rsp_rpl_acc()
7679 ndlp->nlp_rpi); in lpfc_els_rsp_rpl_acc()
7708 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_rpl() argument
7717 if ((ndlp->nlp_state != NLP_STE_UNMAPPED_NODE) && in lpfc_els_rcv_rpl()
7718 (ndlp->nlp_state != NLP_STE_MAPPED_NODE)) { in lpfc_els_rcv_rpl()
7724 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, in lpfc_els_rcv_rpl()
7743 lpfc_els_rsp_rpl_acc(vport, cmdsize, cmdiocb, ndlp); in lpfc_els_rcv_rpl()
7774 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_farp() argument
7813 if ((ndlp->nlp_state == NLP_STE_UNMAPPED_NODE) || in lpfc_els_rcv_farp()
7814 (ndlp->nlp_state == NLP_STE_MAPPED_NODE)) { in lpfc_els_rcv_farp()
7817 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_rcv_farp()
7818 lpfc_nlp_set_state(vport, ndlp, in lpfc_els_rcv_farp()
7820 lpfc_issue_els_plogi(vport, ndlp->nlp_DID, 0); in lpfc_els_rcv_farp()
7847 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_farpr() argument
7864 lpfc_els_rsp_acc(vport, ELS_CMD_ACC, cmdiocb, ndlp, NULL); in lpfc_els_rcv_farpr()
8022 struct lpfc_nodelist *ndlp; in lpfc_els_timeout_handler() local
8023 ndlp = __lpfc_findnode_rpi(vport, cmd->ulpContext); in lpfc_els_timeout_handler()
8024 if (ndlp && NLP_CHK_NODE_ACT(ndlp)) in lpfc_els_timeout_handler()
8025 remote_ID = ndlp->nlp_DID; in lpfc_els_timeout_handler()
8247 struct lpfc_nodelist *ndlp; in lpfc_send_els_failure_event() local
8250 ndlp = cmdiocbp->context1; in lpfc_send_els_failure_event()
8251 if (!ndlp || !NLP_CHK_NODE_ACT(ndlp)) in lpfc_send_els_failure_event()
8257 memcpy(lsrjt_event.header.wwpn, &ndlp->nlp_portname, in lpfc_send_els_failure_event()
8259 memcpy(lsrjt_event.header.wwnn, &ndlp->nlp_nodename, in lpfc_send_els_failure_event()
8281 memcpy(fabric_event.wwpn, &ndlp->nlp_portname, in lpfc_send_els_failure_event()
8283 memcpy(fabric_event.wwnn, &ndlp->nlp_nodename, in lpfc_send_els_failure_event()
8306 struct lpfc_nodelist *ndlp, in lpfc_send_els_event() argument
8353 memcpy(els_data->wwpn, &ndlp->nlp_portname, sizeof(struct lpfc_name)); in lpfc_send_els_event()
8354 memcpy(els_data->wwnn, &ndlp->nlp_nodename, sizeof(struct lpfc_name)); in lpfc_send_els_event()
8478 struct lpfc_nodelist *ndlp; in lpfc_els_unsol_buffer() local
8517 ndlp = lpfc_findnode_did(vport, did); in lpfc_els_unsol_buffer()
8518 if (!ndlp) { in lpfc_els_unsol_buffer()
8520 ndlp = lpfc_nlp_init(vport, did); in lpfc_els_unsol_buffer()
8521 if (!ndlp) in lpfc_els_unsol_buffer()
8523 lpfc_nlp_set_state(vport, ndlp, NLP_STE_NPR_NODE); in lpfc_els_unsol_buffer()
8526 ndlp->nlp_type |= NLP_FABRIC; in lpfc_els_unsol_buffer()
8527 } else if (!NLP_CHK_NODE_ACT(ndlp)) { in lpfc_els_unsol_buffer()
8528 ndlp = lpfc_enable_node(vport, ndlp, in lpfc_els_unsol_buffer()
8530 if (!ndlp) in lpfc_els_unsol_buffer()
8532 lpfc_nlp_set_state(vport, ndlp, NLP_STE_NPR_NODE); in lpfc_els_unsol_buffer()
8535 ndlp->nlp_type |= NLP_FABRIC; in lpfc_els_unsol_buffer()
8536 } else if (ndlp->nlp_state == NLP_STE_UNUSED_NODE) { in lpfc_els_unsol_buffer()
8538 ndlp = lpfc_nlp_get(ndlp); in lpfc_els_unsol_buffer()
8539 if (!ndlp) in lpfc_els_unsol_buffer()
8541 lpfc_nlp_set_state(vport, ndlp, NLP_STE_NPR_NODE); in lpfc_els_unsol_buffer()
8553 if (ndlp->nlp_flag & NLP_IN_DEV_LOSS) { in lpfc_els_unsol_buffer()
8556 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
8561 elsiocb->context1 = lpfc_nlp_get(ndlp); in lpfc_els_unsol_buffer()
8587 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8590 ndlp = lpfc_plogi_confirm_nport(phba, payload, ndlp); in lpfc_els_unsol_buffer()
8605 lpfc_send_els_event(vport, ndlp, payload); in lpfc_els_unsol_buffer()
8624 ndlp->nlp_flag &= ~NLP_TARGET_REMOVE; in lpfc_els_unsol_buffer()
8627 lpfc_disc_state_machine(vport, ndlp, elsiocb, in lpfc_els_unsol_buffer()
8634 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8650 lpfc_els_rcv_flogi(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
8652 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
8657 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8660 lpfc_send_els_event(vport, ndlp, payload); in lpfc_els_unsol_buffer()
8666 lpfc_disc_state_machine(vport, ndlp, elsiocb, NLP_EVT_RCV_LOGO); in lpfc_els_unsol_buffer()
8671 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8674 lpfc_send_els_event(vport, ndlp, payload); in lpfc_els_unsol_buffer()
8680 lpfc_disc_state_machine(vport, ndlp, elsiocb, NLP_EVT_RCV_PRLO); in lpfc_els_unsol_buffer()
8684 lpfc_els_rcv_lcb(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
8688 lpfc_els_rcv_rdp(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
8692 lpfc_els_rcv_rscn(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
8694 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
8699 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8701 lpfc_send_els_event(vport, ndlp, payload); in lpfc_els_unsol_buffer()
8708 lpfc_disc_state_machine(vport, ndlp, elsiocb, in lpfc_els_unsol_buffer()
8714 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8722 lpfc_disc_state_machine(vport, ndlp, elsiocb, in lpfc_els_unsol_buffer()
8728 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8731 lpfc_els_rcv_farpr(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
8736 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8739 lpfc_els_rcv_farp(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
8744 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8747 lpfc_els_rcv_fan(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
8753 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8762 lpfc_disc_state_machine(vport, ndlp, elsiocb, NLP_EVT_RCV_PRLI); in lpfc_els_unsol_buffer()
8767 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8770 lpfc_els_rcv_lirr(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
8772 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
8777 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8780 lpfc_els_rcv_rls(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
8782 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
8787 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8790 lpfc_els_rcv_rpl(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
8792 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
8797 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8800 lpfc_els_rcv_rnid(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
8802 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
8807 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8809 lpfc_els_rcv_rtv(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
8811 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
8816 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8819 lpfc_els_rcv_rrq(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
8821 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
8826 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8829 lpfc_els_rcv_echo(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
8831 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
8841 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8862 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
8872 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, elsiocb, ndlp, in lpfc_els_unsol_buffer()
9002 struct lpfc_nodelist *ndlp; in lpfc_start_fdmi() local
9008 ndlp = lpfc_findnode_did(vport, FDMI_DID); in lpfc_start_fdmi()
9009 if (!ndlp) { in lpfc_start_fdmi()
9010 ndlp = lpfc_nlp_init(vport, FDMI_DID); in lpfc_start_fdmi()
9011 if (ndlp) { in lpfc_start_fdmi()
9012 ndlp->nlp_type |= NLP_FABRIC; in lpfc_start_fdmi()
9017 if (!NLP_CHK_NODE_ACT(ndlp)) in lpfc_start_fdmi()
9018 ndlp = lpfc_enable_node(vport, ndlp, NLP_STE_NPR_NODE); in lpfc_start_fdmi()
9020 if (ndlp) { in lpfc_start_fdmi()
9021 lpfc_nlp_set_state(vport, ndlp, NLP_STE_PLOGI_ISSUE); in lpfc_start_fdmi()
9022 lpfc_issue_els_plogi(vport, ndlp->nlp_DID, 0); in lpfc_start_fdmi()
9042 struct lpfc_nodelist *ndlp; in lpfc_do_scr_ns_plogi() local
9062 ndlp = lpfc_findnode_did(vport, NameServer_DID); in lpfc_do_scr_ns_plogi()
9063 if (!ndlp) { in lpfc_do_scr_ns_plogi()
9064 ndlp = lpfc_nlp_init(vport, NameServer_DID); in lpfc_do_scr_ns_plogi()
9065 if (!ndlp) { in lpfc_do_scr_ns_plogi()
9075 } else if (!NLP_CHK_NODE_ACT(ndlp)) { in lpfc_do_scr_ns_plogi()
9076 ndlp = lpfc_enable_node(vport, ndlp, NLP_STE_UNUSED_NODE); in lpfc_do_scr_ns_plogi()
9077 if (!ndlp) { in lpfc_do_scr_ns_plogi()
9088 ndlp->nlp_type |= NLP_FABRIC; in lpfc_do_scr_ns_plogi()
9090 lpfc_nlp_set_state(vport, ndlp, NLP_STE_PLOGI_ISSUE); in lpfc_do_scr_ns_plogi()
9092 if (lpfc_issue_els_plogi(vport, ndlp->nlp_DID, 0)) { in lpfc_do_scr_ns_plogi()
9122 struct lpfc_nodelist *ndlp = (struct lpfc_nodelist *)pmb->ctx_ndlp; in lpfc_cmpl_reg_new_vport() local
9166 lpfc_nlp_put(ndlp); in lpfc_cmpl_reg_new_vport()
9214 lpfc_nlp_put(ndlp); in lpfc_cmpl_reg_new_vport()
9231 struct lpfc_nodelist *ndlp) in lpfc_register_new_vport() argument
9240 mbox->ctx_ndlp = lpfc_nlp_get(ndlp); in lpfc_register_new_vport()
9247 lpfc_nlp_put(ndlp); in lpfc_register_new_vport()
9279 struct lpfc_nodelist *ndlp; in lpfc_cancel_all_vport_retry_delay_timer() local
9292 ndlp = lpfc_findnode_did(vports[i], Fabric_DID); in lpfc_cancel_all_vport_retry_delay_timer()
9293 if (ndlp) in lpfc_cancel_all_vport_retry_delay_timer()
9294 lpfc_cancel_retry_delay_tmo(vports[i], ndlp); in lpfc_cancel_all_vport_retry_delay_timer()
9312 struct lpfc_nodelist *ndlp; in lpfc_retry_pport_discovery() local
9319 ndlp = lpfc_findnode_did(phba->pport, Fabric_DID); in lpfc_retry_pport_discovery()
9320 if (!ndlp) in lpfc_retry_pport_discovery()
9324 mod_timer(&ndlp->nlp_delayfunc, jiffies + msecs_to_jiffies(1000)); in lpfc_retry_pport_discovery()
9326 ndlp->nlp_flag |= NLP_DELAY_TMO; in lpfc_retry_pport_discovery()
9328 ndlp->nlp_last_elscmd = ELS_CMD_FLOGI; in lpfc_retry_pport_discovery()
9381 struct lpfc_nodelist *ndlp = (struct lpfc_nodelist *) cmdiocb->context1; in lpfc_cmpl_els_fdisc() local
9449 if (!NLP_CHK_NODE_ACT(ndlp) || in lpfc_cmpl_els_fdisc()
9477 lpfc_register_new_vport(phba, vport, ndlp); in lpfc_cmpl_els_fdisc()
9484 lpfc_register_new_vport(phba, vport, ndlp); in lpfc_cmpl_els_fdisc()
9494 lpfc_nlp_put(ndlp); in lpfc_cmpl_els_fdisc()
9520 lpfc_issue_els_fdisc(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, in lpfc_issue_els_fdisc() argument
9529 int did = ndlp->nlp_DID; in lpfc_issue_els_fdisc()
9535 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp, did, in lpfc_issue_els_fdisc()
9621 struct lpfc_nodelist *ndlp; in lpfc_cmpl_els_npiv_logo() local
9624 ndlp = (struct lpfc_nodelist *)cmdiocb->context1; in lpfc_cmpl_els_npiv_logo()
9634 lpfc_nlp_put(ndlp); in lpfc_cmpl_els_npiv_logo()
9640 ndlp->nlp_DID, irsp->ulpStatus, irsp->un.ulpWord[4], in lpfc_cmpl_els_npiv_logo()
9669 lpfc_issue_els_npiv_logo(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp) in lpfc_issue_els_npiv_logo() argument
9678 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, 0, ndlp, ndlp->nlp_DID, in lpfc_issue_els_npiv_logo()
9694 ndlp->nlp_DID, ndlp->nlp_flag, 0); in lpfc_issue_els_npiv_logo()
9698 ndlp->nlp_flag |= NLP_LOGO_SND; in lpfc_issue_els_npiv_logo()
9703 ndlp->nlp_flag &= ~NLP_LOGO_SND; in lpfc_issue_els_npiv_logo()
10007 void lpfc_fabric_abort_nport(struct lpfc_nodelist *ndlp) in lpfc_fabric_abort_nport() argument
10010 struct lpfc_hba *phba = ndlp->phba; in lpfc_fabric_abort_nport()
10022 if ((lpfc_check_sli_ndlp(phba, pring, piocb, ndlp))) { in lpfc_fabric_abort_nport()
10076 if (sglq_entry->ndlp && sglq_entry->ndlp->vport == vport) in lpfc_sli4_vport_delete_els_xri_aborted()
10077 sglq_entry->ndlp = NULL; in lpfc_sli4_vport_delete_els_xri_aborted()
10102 struct lpfc_nodelist *ndlp; in lpfc_sli4_els_xri_aborted() local
10113 ndlp = sglq_entry->ndlp; in lpfc_sli4_els_xri_aborted()
10114 sglq_entry->ndlp = NULL; in lpfc_sli4_els_xri_aborted()
10120 lpfc_set_rrq_active(phba, ndlp, in lpfc_sli4_els_xri_aborted()
10160 struct lpfc_nodelist *ndlp) in lpfc_sli_abts_recover_port() argument
10168 if (ndlp->nlp_state != NLP_STE_MAPPED_NODE) { in lpfc_sli_abts_recover_port()
10171 "rport in state 0x%x\n", ndlp->nlp_state); in lpfc_sli_abts_recover_port()
10178 shost->host_no, ndlp->nlp_DID, in lpfc_sli_abts_recover_port()
10179 vport->vpi, ndlp->nlp_rpi, ndlp->nlp_state, in lpfc_sli_abts_recover_port()
10180 ndlp->nlp_flag); in lpfc_sli_abts_recover_port()
10186 ndlp->nlp_fcp_info &= ~NLP_FCP_2_DEVICE; in lpfc_sli_abts_recover_port()
10187 ndlp->nlp_flag |= NLP_ISSUE_LOGO; in lpfc_sli_abts_recover_port()
10189 lpfc_unreg_rpi(vport, ndlp); in lpfc_sli_abts_recover_port()