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()
1098 lpfc_nlp_put(ndlp); in lpfc_cmpl_els_flogi()
1132 rc = lpfc_cmpl_els_flogi_fabric(vport, ndlp, sp, irsp); in lpfc_cmpl_els_flogi()
1134 rc = lpfc_cmpl_els_flogi_nport(vport, ndlp, sp); in lpfc_cmpl_els_flogi()
1159 lpfc_nlp_put(ndlp); in lpfc_cmpl_els_flogi()
1198 lpfc_nlp_put(ndlp); in lpfc_cmpl_els_flogi()
1275 lpfc_issue_els_flogi(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, in lpfc_issue_els_flogi() argument
1289 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp, in lpfc_issue_els_flogi()
1290 ndlp->nlp_DID, ELS_CMD_FLOGI); in lpfc_issue_els_flogi()
1379 ndlp, NULL); in lpfc_issue_els_flogi()
1412 struct lpfc_nodelist *ndlp; in lpfc_els_abort_flogi() local
1432 ndlp = (struct lpfc_nodelist *)(iocb->context1); in lpfc_els_abort_flogi()
1433 if (ndlp && NLP_CHK_NODE_ACT(ndlp) && in lpfc_els_abort_flogi()
1434 (ndlp->nlp_DID == Fabric_DID)) in lpfc_els_abort_flogi()
1462 struct lpfc_nodelist *ndlp; in lpfc_initial_flogi() local
1468 ndlp = lpfc_findnode_did(vport, Fabric_DID); in lpfc_initial_flogi()
1469 if (!ndlp) { in lpfc_initial_flogi()
1471 ndlp = lpfc_nlp_init(vport, Fabric_DID); in lpfc_initial_flogi()
1472 if (!ndlp) in lpfc_initial_flogi()
1475 ndlp->nlp_type |= NLP_FABRIC; in lpfc_initial_flogi()
1477 lpfc_enqueue_node(vport, ndlp); in lpfc_initial_flogi()
1478 } else if (!NLP_CHK_NODE_ACT(ndlp)) { in lpfc_initial_flogi()
1480 ndlp = lpfc_enable_node(vport, ndlp, NLP_STE_UNUSED_NODE); in lpfc_initial_flogi()
1481 if (!ndlp) in lpfc_initial_flogi()
1485 if (lpfc_issue_els_flogi(vport, ndlp, 0)) { in lpfc_initial_flogi()
1489 lpfc_nlp_put(ndlp); in lpfc_initial_flogi()
1514 struct lpfc_nodelist *ndlp; in lpfc_initial_fdisc() local
1517 ndlp = lpfc_findnode_did(vport, Fabric_DID); in lpfc_initial_fdisc()
1518 if (!ndlp) { in lpfc_initial_fdisc()
1520 ndlp = lpfc_nlp_init(vport, Fabric_DID); in lpfc_initial_fdisc()
1521 if (!ndlp) in lpfc_initial_fdisc()
1524 lpfc_enqueue_node(vport, ndlp); in lpfc_initial_fdisc()
1525 } else if (!NLP_CHK_NODE_ACT(ndlp)) { in lpfc_initial_fdisc()
1527 ndlp = lpfc_enable_node(vport, ndlp, NLP_STE_UNUSED_NODE); in lpfc_initial_fdisc()
1528 if (!ndlp) in lpfc_initial_fdisc()
1532 if (lpfc_issue_els_fdisc(vport, ndlp, 0)) { in lpfc_initial_fdisc()
1536 lpfc_nlp_put(ndlp); in lpfc_initial_fdisc()
1606 struct lpfc_nodelist *ndlp) in lpfc_plogi_confirm_nport() argument
1608 struct lpfc_vport *vport = ndlp->vport; in lpfc_plogi_confirm_nport()
1627 if (ndlp->nlp_type & NLP_FABRIC) in lpfc_plogi_confirm_nport()
1628 return ndlp; in lpfc_plogi_confirm_nport()
1639 if (new_ndlp == ndlp && NLP_CHK_NODE_ACT(new_ndlp)) in lpfc_plogi_confirm_nport()
1640 return ndlp; in lpfc_plogi_confirm_nport()
1653 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_fc4_type, in lpfc_plogi_confirm_nport()
1659 rc = memcmp(&ndlp->nlp_portname, name, in lpfc_plogi_confirm_nport()
1665 return ndlp; in lpfc_plogi_confirm_nport()
1667 new_ndlp = lpfc_nlp_init(vport, ndlp->nlp_DID); in lpfc_plogi_confirm_nport()
1672 return ndlp; in lpfc_plogi_confirm_nport()
1675 rc = memcmp(&ndlp->nlp_portname, name, in lpfc_plogi_confirm_nport()
1681 return ndlp; in lpfc_plogi_confirm_nport()
1689 return ndlp; in lpfc_plogi_confirm_nport()
1712 new_ndlp->nlp_fc4_type = ndlp->nlp_fc4_type; in lpfc_plogi_confirm_nport()
1716 new_ndlp->nlp_DID = ndlp->nlp_DID; in lpfc_plogi_confirm_nport()
1717 new_ndlp->nlp_prev_state = ndlp->nlp_prev_state; in lpfc_plogi_confirm_nport()
1720 ndlp->active_rrqs_xri_bitmap, in lpfc_plogi_confirm_nport()
1725 keep_nlp_flag = ndlp->nlp_flag; in lpfc_plogi_confirm_nport()
1726 new_ndlp->nlp_flag = ndlp->nlp_flag; in lpfc_plogi_confirm_nport()
1740 ndlp->nlp_flag = keep_new_nlp_flag; in lpfc_plogi_confirm_nport()
1744 ndlp->nlp_flag |= NLP_UNREG_INP; in lpfc_plogi_confirm_nport()
1746 ndlp->nlp_flag &= ~NLP_UNREG_INP; in lpfc_plogi_confirm_nport()
1750 ndlp->nlp_flag |= NLP_RPI_REGISTERED; in lpfc_plogi_confirm_nport()
1752 ndlp->nlp_flag &= ~NLP_RPI_REGISTERED; in lpfc_plogi_confirm_nport()
1758 lpfc_nlp_set_state(vport, new_ndlp, ndlp->nlp_state); in lpfc_plogi_confirm_nport()
1762 new_ndlp->nrport = ndlp->nrport; in lpfc_plogi_confirm_nport()
1765 if (memcmp(&ndlp->nlp_portname, name, sizeof(struct lpfc_name)) == 0) { in lpfc_plogi_confirm_nport()
1774 rport = ndlp->rport; in lpfc_plogi_confirm_nport()
1777 if (rdata->pnode == ndlp) { in lpfc_plogi_confirm_nport()
1779 ndlp->rport = NULL; in lpfc_plogi_confirm_nport()
1780 lpfc_nlp_put(ndlp); in lpfc_plogi_confirm_nport()
1784 new_ndlp->nlp_type = ndlp->nlp_type; in lpfc_plogi_confirm_nport()
1788 if (ndlp->nrport) { in lpfc_plogi_confirm_nport()
1789 ndlp->nrport = NULL; in lpfc_plogi_confirm_nport()
1790 lpfc_nlp_put(ndlp); in lpfc_plogi_confirm_nport()
1797 if (ndlp->nlp_DID == 0) { in lpfc_plogi_confirm_nport()
1799 NLP_SET_FREE_REQ(ndlp); in lpfc_plogi_confirm_nport()
1807 ndlp->nlp_DID = keepDID; in lpfc_plogi_confirm_nport()
1808 lpfc_nlp_set_state(vport, ndlp, keep_nlp_state); in lpfc_plogi_confirm_nport()
1811 memcpy(ndlp->active_rrqs_xri_bitmap, in lpfc_plogi_confirm_nport()
1815 if (!NLP_CHK_NODE_ACT(ndlp)) in lpfc_plogi_confirm_nport()
1816 lpfc_drop_node(vport, ndlp); in lpfc_plogi_confirm_nport()
1823 lpfc_unreg_rpi(vport, ndlp); in lpfc_plogi_confirm_nport()
1829 ndlp->nlp_DID = keepDID; in lpfc_plogi_confirm_nport()
1830 ndlp->nlp_fc4_type = keep_nlp_fc4_type; in lpfc_plogi_confirm_nport()
1834 memcpy(ndlp->active_rrqs_xri_bitmap, in lpfc_plogi_confirm_nport()
1841 if ((ndlp->nlp_state == NLP_STE_UNMAPPED_NODE) || in lpfc_plogi_confirm_nport()
1842 (ndlp->nlp_state == NLP_STE_MAPPED_NODE)) in lpfc_plogi_confirm_nport()
1844 lpfc_nlp_set_state(vport, ndlp, keep_nlp_state); in lpfc_plogi_confirm_nport()
1850 if (ndlp->nrport) in lpfc_plogi_confirm_nport()
1851 lpfc_nlp_put(ndlp); in lpfc_plogi_confirm_nport()
1852 ndlp->nrport = keep_nrport; in lpfc_plogi_confirm_nport()
1855 rport = ndlp->rport; in lpfc_plogi_confirm_nport()
1859 put_rport = ndlp->rport != NULL; in lpfc_plogi_confirm_nport()
1861 ndlp->rport = NULL; in lpfc_plogi_confirm_nport()
1863 lpfc_nlp_put(ndlp); in lpfc_plogi_confirm_nport()
1931 struct lpfc_nodelist *ndlp; in lpfc_cmpl_els_rrq() local
1944 ndlp = lpfc_findnode_did(vport, irsp->un.elsreq64.remoteID); in lpfc_cmpl_els_rrq()
1945 if (!ndlp || !NLP_CHK_NODE_ACT(ndlp) || ndlp != rrq->ndlp) { in lpfc_cmpl_els_rrq()
1959 ndlp->nlp_DID, irsp->ulpStatus, irsp->un.ulpWord[4], in lpfc_cmpl_els_rrq()
1972 ndlp->nlp_DID, irsp->ulpStatus, in lpfc_cmpl_els_rrq()
2008 struct lpfc_nodelist *ndlp; in lpfc_cmpl_els_plogi() local
2021 ndlp = lpfc_findnode_did(vport, irsp->un.elsreq64.remoteID); in lpfc_cmpl_els_plogi()
2022 if (!ndlp || !NLP_CHK_NODE_ACT(ndlp)) { in lpfc_cmpl_els_plogi()
2036 disc = (ndlp->nlp_flag & NLP_NPR_2B_DISC); in lpfc_cmpl_els_plogi()
2037 ndlp->nlp_flag &= ~NLP_NPR_2B_DISC; in lpfc_cmpl_els_plogi()
2044 ndlp->nlp_DID, ndlp->nlp_fc4_type, in lpfc_cmpl_els_plogi()
2051 ndlp->nlp_flag |= NLP_NPR_2B_DISC; in lpfc_cmpl_els_plogi()
2062 ndlp->nlp_flag |= NLP_NPR_2B_DISC; in lpfc_cmpl_els_plogi()
2074 ndlp->nlp_DID, irsp->ulpStatus, in lpfc_cmpl_els_plogi()
2078 lpfc_disc_state_machine(vport, ndlp, cmdiocb, in lpfc_cmpl_els_plogi()
2085 ndlp = lpfc_plogi_confirm_nport(phba, prsp->virt, ndlp); in lpfc_cmpl_els_plogi()
2086 lpfc_disc_state_machine(vport, ndlp, cmdiocb, in lpfc_cmpl_els_plogi()
2136 struct lpfc_nodelist *ndlp; in lpfc_issue_els_plogi() local
2142 ndlp = lpfc_findnode_did(vport, did); in lpfc_issue_els_plogi()
2144 if (ndlp) { in lpfc_issue_els_plogi()
2149 if ((ndlp->nlp_flag & NLP_UNREG_INP) && in lpfc_issue_els_plogi()
2150 ((ndlp->nlp_DID & Fabric_DID_MASK) != Fabric_DID_MASK) && in lpfc_issue_els_plogi()
2155 ndlp->nlp_defer_did, ndlp->nlp_DID, in lpfc_issue_els_plogi()
2156 ndlp->nlp_rpi, ndlp); in lpfc_issue_els_plogi()
2159 if (ndlp->nlp_defer_did == NLP_EVT_NOTHING_PENDING) in lpfc_issue_els_plogi()
2160 ndlp->nlp_defer_did = did; in lpfc_issue_els_plogi()
2163 if (!NLP_CHK_NODE_ACT(ndlp)) in lpfc_issue_els_plogi()
2164 ndlp = NULL; in lpfc_issue_els_plogi()
2169 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp, did, in lpfc_issue_els_plogi()
2176 ndlp->nlp_flag &= ~NLP_FCP_PRLI_RJT; in lpfc_issue_els_plogi()
2248 struct lpfc_nodelist *ndlp; in lpfc_cmpl_els_prli() local
2256 ndlp = (struct lpfc_nodelist *) cmdiocb->context1; in lpfc_cmpl_els_prli()
2258 ndlp->nlp_flag &= ~NLP_PRLI_SND; in lpfc_cmpl_els_prli()
2262 ndlp->fc4_prli_sent--; in lpfc_cmpl_els_prli()
2268 ndlp->nlp_DID); in lpfc_cmpl_els_prli()
2274 ndlp->nlp_DID, irsp->ulpStatus, irsp->un.ulpWord[4], in lpfc_cmpl_els_prli()
2275 vport->num_disc_nodes, ndlp->fc4_prli_sent); in lpfc_cmpl_els_prli()
2304 ndlp->nlp_DID, irsp->ulpStatus, in lpfc_cmpl_els_prli()
2305 irsp->un.ulpWord[4], ndlp->fc4_prli_sent); in lpfc_cmpl_els_prli()
2311 lpfc_disc_state_machine(vport, ndlp, cmdiocb, in lpfc_cmpl_els_prli()
2319 lpfc_disc_state_machine(vport, ndlp, cmdiocb, in lpfc_cmpl_els_prli()
2350 lpfc_issue_els_prli(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, in lpfc_issue_els_prli() argument
2371 ndlp->nlp_fc4_type |= NLP_FC4_NVME; in lpfc_issue_els_prli()
2372 local_nlp_type = ndlp->nlp_fc4_type; in lpfc_issue_els_prli()
2377 ndlp->nlp_type &= ~(NLP_FCP_TARGET | NLP_FCP_INITIATOR); in lpfc_issue_els_prli()
2378 ndlp->nlp_type &= ~(NLP_NVME_TARGET | NLP_NVME_INITIATOR); in lpfc_issue_els_prli()
2379 ndlp->nlp_fcp_info &= ~NLP_FCP_2_DEVICE; in lpfc_issue_els_prli()
2380 ndlp->nlp_flag &= ~(NLP_FIRSTBURST | NLP_NPR_2B_DISC); in lpfc_issue_els_prli()
2381 ndlp->nvme_fb_size = 0; in lpfc_issue_els_prli()
2395 ndlp->nlp_fc4_type, ndlp->nlp_DID); in lpfc_issue_els_prli()
2403 ndlp->nlp_fc4_type == NLP_FC4_NVME) { in lpfc_issue_els_prli()
2406 ndlp->nlp_type); in lpfc_issue_els_prli()
2407 lpfc_disc_state_machine(vport, ndlp, NULL, NLP_EVT_DEVICE_RM); in lpfc_issue_els_prli()
2411 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp, in lpfc_issue_els_prli()
2412 ndlp->nlp_DID, elscmd); in lpfc_issue_els_prli()
2490 ndlp->nlp_DID, 0, 0); in lpfc_issue_els_prli()
2495 ndlp->nlp_flag |= NLP_PRLI_SND; in lpfc_issue_els_prli()
2502 ndlp->fc4_prli_sent++; in lpfc_issue_els_prli()
2507 ndlp->nlp_flag &= ~NLP_PRLI_SND; in lpfc_issue_els_prli()
2664 struct lpfc_nodelist *ndlp; in lpfc_cmpl_els_adisc() local
2671 ndlp = (struct lpfc_nodelist *) cmdiocb->context1; in lpfc_cmpl_els_adisc()
2676 ndlp->nlp_DID); in lpfc_cmpl_els_adisc()
2682 disc = (ndlp->nlp_flag & NLP_NPR_2B_DISC); in lpfc_cmpl_els_adisc()
2683 ndlp->nlp_flag &= ~(NLP_ADISC_SND | NLP_NPR_2B_DISC); in lpfc_cmpl_els_adisc()
2689 ndlp->nlp_DID, irsp->ulpStatus, irsp->un.ulpWord[4], in lpfc_cmpl_els_adisc()
2694 ndlp->nlp_flag |= NLP_NPR_2B_DISC; in lpfc_cmpl_els_adisc()
2705 ndlp->nlp_flag |= NLP_NPR_2B_DISC; in lpfc_cmpl_els_adisc()
2714 ndlp->nlp_DID, irsp->ulpStatus, in lpfc_cmpl_els_adisc()
2718 lpfc_disc_state_machine(vport, ndlp, cmdiocb, in lpfc_cmpl_els_adisc()
2722 lpfc_disc_state_machine(vport, ndlp, cmdiocb, in lpfc_cmpl_els_adisc()
2754 lpfc_issue_els_adisc(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, in lpfc_issue_els_adisc() argument
2765 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp, in lpfc_issue_els_adisc()
2766 ndlp->nlp_DID, ELS_CMD_ADISC); in lpfc_issue_els_adisc()
2785 ndlp->nlp_DID, 0, 0); in lpfc_issue_els_adisc()
2790 ndlp->nlp_flag |= NLP_ADISC_SND; in lpfc_issue_els_adisc()
2795 ndlp->nlp_flag &= ~NLP_ADISC_SND; in lpfc_issue_els_adisc()
2819 struct lpfc_nodelist *ndlp = (struct lpfc_nodelist *) cmdiocb->context1; in lpfc_cmpl_els_logo() local
2820 struct lpfc_vport *vport = ndlp->vport; in lpfc_cmpl_els_logo()
2832 ndlp->nlp_flag &= ~NLP_LOGO_SND; in lpfc_cmpl_els_logo()
2838 ndlp->nlp_DID); in lpfc_cmpl_els_logo()
2844 ndlp->nlp_DID, irsp->ulpStatus, irsp->un.ulpWord[4], in lpfc_cmpl_els_logo()
2853 if (ndlp->nlp_flag & NLP_TARGET_REMOVE) { in lpfc_cmpl_els_logo()
2857 lpfc_disc_state_machine(vport, ndlp, cmdiocb, in lpfc_cmpl_els_logo()
2872 ndlp->nlp_DID, irsp->ulpStatus, in lpfc_cmpl_els_logo()
2882 lpfc_disc_state_machine(vport, ndlp, cmdiocb, NLP_EVT_CMPL_LOGO); in lpfc_cmpl_els_logo()
2917 if (ndlp->nlp_type & (NLP_FCP_TARGET | NLP_NVME_TARGET) && in lpfc_cmpl_els_logo()
2919 lpfc_cancel_retry_delay_tmo(vport, ndlp); in lpfc_cmpl_els_logo()
2921 ndlp->nlp_flag |= NLP_NPR_2B_DISC; in lpfc_cmpl_els_logo()
2927 ndlp->nlp_DID, irsp->ulpStatus, in lpfc_cmpl_els_logo()
2958 lpfc_issue_els_logo(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, in lpfc_issue_els_logo() argument
2969 if (ndlp->nlp_flag & NLP_LOGO_SND) { in lpfc_issue_els_logo()
2976 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp, in lpfc_issue_els_logo()
2977 ndlp->nlp_DID, ELS_CMD_LOGO); in lpfc_issue_els_logo()
2992 ndlp->nlp_DID, 0, 0); in lpfc_issue_els_logo()
2997 ndlp->nlp_flag |= NLP_LOGO_SND; in lpfc_issue_els_logo()
2998 ndlp->nlp_flag &= ~NLP_ISSUE_LOGO; in lpfc_issue_els_logo()
3003 ndlp->nlp_flag &= ~NLP_LOGO_SND; in lpfc_issue_els_logo()
3010 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_issue_els_logo()
3012 lpfc_nlp_set_state(vport, ndlp, NLP_STE_LOGO_ISSUE); in lpfc_issue_els_logo()
3186 struct lpfc_nodelist *ndlp; in lpfc_issue_els_scr() local
3190 ndlp = lpfc_findnode_did(vport, Fabric_Cntl_DID); in lpfc_issue_els_scr()
3191 if (!ndlp) { in lpfc_issue_els_scr()
3192 ndlp = lpfc_nlp_init(vport, Fabric_Cntl_DID); in lpfc_issue_els_scr()
3193 if (!ndlp) in lpfc_issue_els_scr()
3195 lpfc_enqueue_node(vport, ndlp); in lpfc_issue_els_scr()
3196 } else if (!NLP_CHK_NODE_ACT(ndlp)) { in lpfc_issue_els_scr()
3197 ndlp = lpfc_enable_node(vport, ndlp, NLP_STE_UNUSED_NODE); in lpfc_issue_els_scr()
3198 if (!ndlp) in lpfc_issue_els_scr()
3202 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp, in lpfc_issue_els_scr()
3203 ndlp->nlp_DID, ELS_CMD_SCR); in lpfc_issue_els_scr()
3209 lpfc_nlp_put(ndlp); in lpfc_issue_els_scr()
3224 ndlp->nlp_DID, 0, 0); in lpfc_issue_els_scr()
3234 lpfc_nlp_put(ndlp); in lpfc_issue_els_scr()
3242 lpfc_nlp_put(ndlp); in lpfc_issue_els_scr()
3271 struct lpfc_nodelist *ndlp; in lpfc_issue_els_rscn() local
3286 ndlp = lpfc_findnode_mapped(vport); in lpfc_issue_els_rscn()
3287 if (!ndlp) in lpfc_issue_els_rscn()
3292 ndlp = lpfc_findnode_did(vport, nportid); in lpfc_issue_els_rscn()
3293 if (!ndlp) { in lpfc_issue_els_rscn()
3295 ndlp = lpfc_nlp_init(vport, nportid); in lpfc_issue_els_rscn()
3296 if (!ndlp) in lpfc_issue_els_rscn()
3298 lpfc_enqueue_node(vport, ndlp); in lpfc_issue_els_rscn()
3299 } else if (!NLP_CHK_NODE_ACT(ndlp)) { in lpfc_issue_els_rscn()
3300 ndlp = lpfc_enable_node(vport, ndlp, in lpfc_issue_els_rscn()
3302 if (!ndlp) in lpfc_issue_els_rscn()
3307 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp, in lpfc_issue_els_rscn()
3308 ndlp->nlp_DID, ELS_CMD_RSCN_XMT); in lpfc_issue_els_rscn()
3314 lpfc_nlp_put(ndlp); in lpfc_issue_els_rscn()
3333 ndlp->nlp_DID, 0, 0); in lpfc_issue_els_rscn()
3343 lpfc_nlp_put(ndlp); in lpfc_issue_els_rscn()
3351 lpfc_nlp_put(ndlp); in lpfc_issue_els_rscn()
3388 struct lpfc_nodelist *ndlp; in lpfc_issue_els_farpr() local
3392 ndlp = lpfc_findnode_did(vport, nportid); in lpfc_issue_els_farpr()
3393 if (!ndlp) { in lpfc_issue_els_farpr()
3394 ndlp = lpfc_nlp_init(vport, nportid); in lpfc_issue_els_farpr()
3395 if (!ndlp) in lpfc_issue_els_farpr()
3397 lpfc_enqueue_node(vport, ndlp); in lpfc_issue_els_farpr()
3398 } else if (!NLP_CHK_NODE_ACT(ndlp)) { in lpfc_issue_els_farpr()
3399 ndlp = lpfc_enable_node(vport, ndlp, NLP_STE_UNUSED_NODE); in lpfc_issue_els_farpr()
3400 if (!ndlp) in lpfc_issue_els_farpr()
3404 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp, in lpfc_issue_els_farpr()
3405 ndlp->nlp_DID, ELS_CMD_RNID); in lpfc_issue_els_farpr()
3410 lpfc_nlp_put(ndlp); in lpfc_issue_els_farpr()
3440 ndlp->nlp_DID, 0, 0); in lpfc_issue_els_farpr()
3450 lpfc_nlp_put(ndlp); in lpfc_issue_els_farpr()
3484 struct lpfc_nodelist *ndlp; in lpfc_issue_els_rdf() local
3489 ndlp = lpfc_findnode_did(vport, Fabric_Cntl_DID); in lpfc_issue_els_rdf()
3490 if (!ndlp) { in lpfc_issue_els_rdf()
3491 ndlp = lpfc_nlp_init(vport, Fabric_Cntl_DID); in lpfc_issue_els_rdf()
3492 if (!ndlp) in lpfc_issue_els_rdf()
3494 lpfc_enqueue_node(vport, ndlp); in lpfc_issue_els_rdf()
3495 } else if (!NLP_CHK_NODE_ACT(ndlp)) { in lpfc_issue_els_rdf()
3496 ndlp = lpfc_enable_node(vport, ndlp, NLP_STE_UNUSED_NODE); in lpfc_issue_els_rdf()
3497 if (!ndlp) in lpfc_issue_els_rdf()
3503 lpfc_nlp_put(ndlp); in lpfc_issue_els_rdf()
3507 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp, in lpfc_issue_els_rdf()
3508 ndlp->nlp_DID, ELS_CMD_RDF); in lpfc_issue_els_rdf()
3513 lpfc_nlp_put(ndlp); in lpfc_issue_els_rdf()
3535 ndlp->nlp_DID, 0, 0); in lpfc_issue_els_rdf()
3539 ndlp->nlp_DID); in lpfc_issue_els_rdf()
3548 lpfc_nlp_put(ndlp); in lpfc_issue_els_rdf()
3556 lpfc_nlp_put(ndlp); in lpfc_issue_els_rdf()
3632 struct lpfc_nodelist *ndlp = from_timer(ndlp, t, nlp_delayfunc); in lpfc_els_retry_delay() local
3633 struct lpfc_vport *vport = ndlp->vport; in lpfc_els_retry_delay()
3636 struct lpfc_work_evt *evtp = &ndlp->els_retry_evt; in lpfc_els_retry_delay()
3647 evtp->evt_arg1 = lpfc_nlp_get(ndlp); in lpfc_els_retry_delay()
3667 lpfc_els_retry_delay_handler(struct lpfc_nodelist *ndlp) in lpfc_els_retry_delay_handler() argument
3669 struct lpfc_vport *vport = ndlp->vport; in lpfc_els_retry_delay_handler()
3674 cmd = ndlp->nlp_last_elscmd; in lpfc_els_retry_delay_handler()
3675 ndlp->nlp_last_elscmd = 0; in lpfc_els_retry_delay_handler()
3677 if (!(ndlp->nlp_flag & NLP_DELAY_TMO)) { in lpfc_els_retry_delay_handler()
3682 ndlp->nlp_flag &= ~NLP_DELAY_TMO; in lpfc_els_retry_delay_handler()
3689 del_timer_sync(&ndlp->nlp_delayfunc); in lpfc_els_retry_delay_handler()
3690 retry = ndlp->nlp_retry; in lpfc_els_retry_delay_handler()
3691 ndlp->nlp_retry = 0; in lpfc_els_retry_delay_handler()
3695 lpfc_issue_els_flogi(vport, ndlp, retry); in lpfc_els_retry_delay_handler()
3698 if (!lpfc_issue_els_plogi(vport, ndlp->nlp_DID, retry)) { in lpfc_els_retry_delay_handler()
3699 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_retry_delay_handler()
3700 lpfc_nlp_set_state(vport, ndlp, NLP_STE_PLOGI_ISSUE); in lpfc_els_retry_delay_handler()
3704 if (!lpfc_issue_els_adisc(vport, ndlp, retry)) { in lpfc_els_retry_delay_handler()
3705 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_retry_delay_handler()
3706 lpfc_nlp_set_state(vport, ndlp, NLP_STE_ADISC_ISSUE); in lpfc_els_retry_delay_handler()
3711 if (!lpfc_issue_els_prli(vport, ndlp, retry)) { in lpfc_els_retry_delay_handler()
3712 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_retry_delay_handler()
3713 lpfc_nlp_set_state(vport, ndlp, NLP_STE_PRLI_ISSUE); in lpfc_els_retry_delay_handler()
3717 if (!lpfc_issue_els_logo(vport, ndlp, retry)) { in lpfc_els_retry_delay_handler()
3718 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_retry_delay_handler()
3719 lpfc_nlp_set_state(vport, ndlp, NLP_STE_LOGO_ISSUE); in lpfc_els_retry_delay_handler()
3724 lpfc_issue_els_fdisc(vport, ndlp, retry); in lpfc_els_retry_delay_handler()
3814 struct lpfc_nodelist *ndlp = (struct lpfc_nodelist *) cmdiocb->context1; in lpfc_els_retry() local
3834 if (ndlp && NLP_CHK_NODE_ACT(ndlp)) in lpfc_els_retry()
3835 did = ndlp->nlp_DID; in lpfc_els_retry()
3839 ndlp = lpfc_findnode_did(vport, did); in lpfc_els_retry()
3840 if ((!ndlp || !NLP_CHK_NODE_ACT(ndlp)) in lpfc_els_retry()
3847 *(((uint32_t *) irsp) + 7), irsp->un.ulpWord[4], ndlp->nlp_DID); in lpfc_els_retry()
3858 lpfc_set_rrq_active(phba, ndlp, in lpfc_els_retry()
4072 ndlp->nlp_flag |= NLP_FCP_PRLI_RJT; in lpfc_els_retry()
4169 if (ndlp && NLP_CHK_NODE_ACT(ndlp) && delay) { in lpfc_els_retry()
4171 ndlp->nlp_retry = cmdiocb->retry; in lpfc_els_retry()
4174 mod_timer(&ndlp->nlp_delayfunc, in lpfc_els_retry()
4177 ndlp->nlp_flag |= NLP_DELAY_TMO; in lpfc_els_retry()
4180 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_retry()
4183 lpfc_nlp_set_state(vport, ndlp, in lpfc_els_retry()
4186 lpfc_nlp_set_state(vport, ndlp, in lpfc_els_retry()
4188 ndlp->nlp_last_elscmd = cmd; in lpfc_els_retry()
4194 lpfc_issue_els_flogi(vport, ndlp, cmdiocb->retry); in lpfc_els_retry()
4197 lpfc_issue_els_fdisc(vport, ndlp, cmdiocb->retry); in lpfc_els_retry()
4200 if (ndlp && NLP_CHK_NODE_ACT(ndlp)) { in lpfc_els_retry()
4201 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_retry()
4202 lpfc_nlp_set_state(vport, ndlp, in lpfc_els_retry()
4208 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_retry()
4209 lpfc_nlp_set_state(vport, ndlp, NLP_STE_ADISC_ISSUE); in lpfc_els_retry()
4210 lpfc_issue_els_adisc(vport, ndlp, cmdiocb->retry); in lpfc_els_retry()
4214 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_retry()
4215 lpfc_nlp_set_state(vport, ndlp, NLP_STE_PRLI_ISSUE); in lpfc_els_retry()
4216 lpfc_issue_els_prli(vport, ndlp, cmdiocb->retry); in lpfc_els_retry()
4219 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_retry()
4220 lpfc_nlp_set_state(vport, ndlp, NLP_STE_LOGO_ISSUE); in lpfc_els_retry()
4221 lpfc_issue_els_logo(vport, ndlp, cmdiocb->retry); in lpfc_els_retry()
4326 struct lpfc_nodelist *ndlp; in lpfc_els_free_iocb() local
4328 ndlp = (struct lpfc_nodelist *)elsiocb->context1; in lpfc_els_free_iocb()
4329 if (ndlp) { in lpfc_els_free_iocb()
4330 if (ndlp->nlp_flag & NLP_DEFER_RM) { in lpfc_els_free_iocb()
4331 lpfc_nlp_put(ndlp); in lpfc_els_free_iocb()
4336 if (!lpfc_nlp_not_used(ndlp)) { in lpfc_els_free_iocb()
4340 ndlp->nlp_flag &= ~NLP_DEFER_RM; in lpfc_els_free_iocb()
4344 lpfc_nlp_put(ndlp); in lpfc_els_free_iocb()
4411 struct lpfc_nodelist *ndlp = (struct lpfc_nodelist *) cmdiocb->context1; in lpfc_cmpl_els_logo_acc() local
4418 irsp->ulpStatus, irsp->un.ulpWord[4], ndlp->nlp_DID); in lpfc_cmpl_els_logo_acc()
4423 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_state, in lpfc_cmpl_els_logo_acc()
4424 ndlp->nlp_rpi); in lpfc_cmpl_els_logo_acc()
4426 if (ndlp->nlp_state == NLP_STE_NPR_NODE) { in lpfc_cmpl_els_logo_acc()
4428 if (!lpfc_nlp_not_used(ndlp)) { in lpfc_cmpl_els_logo_acc()
4432 lpfc_unreg_rpi(vport, ndlp); in lpfc_cmpl_els_logo_acc()
4465 struct lpfc_nodelist *ndlp = (struct lpfc_nodelist *)pmb->ctx_ndlp; in lpfc_mbx_cmpl_dflt_rpi() local
4473 if (ndlp) { in lpfc_mbx_cmpl_dflt_rpi()
4474 lpfc_printf_vlog(ndlp->vport, KERN_INFO, LOG_NODE, in lpfc_mbx_cmpl_dflt_rpi()
4476 ndlp->nlp_rpi, ndlp->nlp_DID, ndlp->nlp_flag, in lpfc_mbx_cmpl_dflt_rpi()
4477 kref_read(&ndlp->kref), in lpfc_mbx_cmpl_dflt_rpi()
4478 ndlp->nlp_usg_map, ndlp); in lpfc_mbx_cmpl_dflt_rpi()
4479 if (NLP_CHK_NODE_ACT(ndlp)) { in lpfc_mbx_cmpl_dflt_rpi()
4480 lpfc_nlp_put(ndlp); in lpfc_mbx_cmpl_dflt_rpi()
4485 lpfc_nlp_not_used(ndlp); in lpfc_mbx_cmpl_dflt_rpi()
4487 lpfc_drop_node(ndlp->vport, ndlp); in lpfc_mbx_cmpl_dflt_rpi()
4514 struct lpfc_nodelist *ndlp = (struct lpfc_nodelist *) cmdiocb->context1; in lpfc_cmpl_els_rsp() local
4515 struct lpfc_vport *vport = ndlp ? ndlp->vport : NULL; in lpfc_cmpl_els_rsp()
4537 if (ndlp && NLP_CHK_NODE_ACT(ndlp) && in lpfc_cmpl_els_rsp()
4542 if (!(ndlp->nlp_flag & NLP_RM_DFLT_RPI)) in lpfc_cmpl_els_rsp()
4547 if (!ndlp || !NLP_CHK_NODE_ACT(ndlp) || lpfc_els_chk_latt(vport)) { in lpfc_cmpl_els_rsp()
4556 if (ndlp && NLP_CHK_NODE_ACT(ndlp) && in lpfc_cmpl_els_rsp()
4557 (ndlp->nlp_flag & NLP_RM_DFLT_RPI)) in lpfc_cmpl_els_rsp()
4558 if (lpfc_nlp_not_used(ndlp)) { in lpfc_cmpl_els_rsp()
4559 ndlp = NULL; in lpfc_cmpl_els_rsp()
4579 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_state, in lpfc_cmpl_els_rsp()
4580 ndlp->nlp_rpi); in lpfc_cmpl_els_rsp()
4583 && (ndlp->nlp_flag & NLP_ACC_REGLOGIN)) { in lpfc_cmpl_els_rsp()
4584 if (!lpfc_unreg_rpi(vport, ndlp) && in lpfc_cmpl_els_rsp()
4586 (ndlp->nlp_state == NLP_STE_PLOGI_ISSUE || in lpfc_cmpl_els_rsp()
4587 ndlp->nlp_state == NLP_STE_REG_LOGIN_ISSUE)) { in lpfc_cmpl_els_rsp()
4592 ndlp->nlp_DID, ndlp->nlp_state, in lpfc_cmpl_els_rsp()
4593 ndlp->nlp_rpi, ndlp->nlp_flag); in lpfc_cmpl_els_rsp()
4607 mbox->ctx_ndlp = lpfc_nlp_get(ndlp); in lpfc_cmpl_els_rsp()
4609 if (ndlp->nlp_flag & NLP_RM_DFLT_RPI) { in lpfc_cmpl_els_rsp()
4615 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_cmpl_els_rsp()
4616 lpfc_nlp_set_state(vport, ndlp, in lpfc_cmpl_els_rsp()
4620 ndlp->nlp_flag |= NLP_REG_LOGIN_SEND; in lpfc_cmpl_els_rsp()
4628 lpfc_nlp_put(ndlp); in lpfc_cmpl_els_rsp()
4629 ndlp->nlp_flag &= ~NLP_REG_LOGIN_SEND; in lpfc_cmpl_els_rsp()
4635 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_state, in lpfc_cmpl_els_rsp()
4636 ndlp->nlp_rpi); in lpfc_cmpl_els_rsp()
4638 if (lpfc_nlp_not_used(ndlp)) { in lpfc_cmpl_els_rsp()
4639 ndlp = NULL; in lpfc_cmpl_els_rsp()
4649 ndlp->nlp_flag & NLP_ACC_REGLOGIN) { in lpfc_cmpl_els_rsp()
4650 if (lpfc_nlp_not_used(ndlp)) { in lpfc_cmpl_els_rsp()
4651 ndlp = NULL; in lpfc_cmpl_els_rsp()
4669 if (ndlp && NLP_CHK_NODE_ACT(ndlp) && shost) { in lpfc_cmpl_els_rsp()
4672 ndlp->nlp_flag &= ~NLP_ACC_REGLOGIN; in lpfc_cmpl_els_rsp()
4673 ndlp->nlp_flag &= ~NLP_RM_DFLT_RPI; in lpfc_cmpl_els_rsp()
4682 if (lpfc_nlp_not_used(ndlp)) in lpfc_cmpl_els_rsp()
4722 struct lpfc_iocbq *oldiocb, struct lpfc_nodelist *ndlp, in lpfc_els_rsp_acc() argument
4742 ndlp, ndlp->nlp_DID, ELS_CMD_ACC); in lpfc_els_rsp_acc()
4745 ndlp->nlp_flag &= ~NLP_LOGO_ACC; in lpfc_els_rsp_acc()
4759 ndlp->nlp_DID, ndlp->nlp_flag, 0); in lpfc_els_rsp_acc()
4765 ndlp, ndlp->nlp_DID, ELS_CMD_ACC); in lpfc_els_rsp_acc()
4822 ndlp->nlp_DID, ndlp->nlp_flag, 0); in lpfc_els_rsp_acc()
4827 ndlp, ndlp->nlp_DID, ELS_CMD_PRLO); in lpfc_els_rsp_acc()
4844 ndlp->nlp_DID, ndlp->nlp_flag, 0); in lpfc_els_rsp_acc()
4849 if (ndlp->nlp_flag & NLP_LOGO_ACC) { in lpfc_els_rsp_acc()
4851 if (!(ndlp->nlp_flag & NLP_RPI_REGISTERED || in lpfc_els_rsp_acc()
4852 ndlp->nlp_flag & NLP_REG_LOGIN_SEND)) in lpfc_els_rsp_acc()
4853 ndlp->nlp_flag &= ~NLP_LOGO_ACC; in lpfc_els_rsp_acc()
4893 struct lpfc_iocbq *oldiocb, struct lpfc_nodelist *ndlp, in lpfc_els_rsp_reject() argument
4905 elsiocb = lpfc_prep_els_iocb(vport, 0, cmdsize, oldiocb->retry, ndlp, in lpfc_els_rsp_reject()
4906 ndlp->nlp_DID, ELS_CMD_LS_RJT); in lpfc_els_rsp_reject()
4929 elsiocb->iocb.ulpContext, ndlp->nlp_DID, in lpfc_els_rsp_reject()
4930 ndlp->nlp_flag, ndlp->nlp_state, ndlp->nlp_rpi); in lpfc_els_rsp_reject()
4933 ndlp->nlp_DID, ndlp->nlp_flag, rejectError); in lpfc_els_rsp_reject()
4967 struct lpfc_nodelist *ndlp) in lpfc_els_rsp_adisc_acc() argument
4978 elsiocb = lpfc_prep_els_iocb(vport, 0, cmdsize, oldiocb->retry, ndlp, in lpfc_els_rsp_adisc_acc()
4979 ndlp->nlp_DID, ELS_CMD_ACC); in lpfc_els_rsp_adisc_acc()
4993 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_state, in lpfc_els_rsp_adisc_acc()
4994 ndlp->nlp_rpi); in lpfc_els_rsp_adisc_acc()
5008 ndlp->nlp_DID, ndlp->nlp_flag, 0); in lpfc_els_rsp_adisc_acc()
5024 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_state, in lpfc_els_rsp_adisc_acc()
5025 ndlp->nlp_rpi, vport->fc_flag); in lpfc_els_rsp_adisc_acc()
5050 struct lpfc_nodelist *ndlp) in lpfc_els_rsp_prli_acc() argument
5089 elsiocb = lpfc_prep_els_iocb(vport, 0, cmdsize, oldiocb->retry, ndlp, in lpfc_els_rsp_prli_acc()
5090 ndlp->nlp_DID, elsrspcmd); in lpfc_els_rsp_prli_acc()
5104 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_state, in lpfc_els_rsp_prli_acc()
5105 ndlp->nlp_rpi); in lpfc_els_rsp_prli_acc()
5122 if ((ndlp->nlp_type & NLP_FCP_TARGET) && in lpfc_els_rsp_prli_acc()
5162 npr_nvme->word5, ndlp->nlp_flag, in lpfc_els_rsp_prli_acc()
5163 ndlp->nlp_fcp_info, ndlp->nlp_type); in lpfc_els_rsp_prli_acc()
5170 prli_fc4_req, ndlp->nlp_fc4_type, in lpfc_els_rsp_prli_acc()
5171 ndlp->nlp_DID); in lpfc_els_rsp_prli_acc()
5175 ndlp->nlp_DID, ndlp->nlp_flag, 0); in lpfc_els_rsp_prli_acc()
5216 struct lpfc_iocbq *oldiocb, struct lpfc_nodelist *ndlp) in lpfc_els_rsp_rnid_acc() argument
5231 elsiocb = lpfc_prep_els_iocb(vport, 0, cmdsize, oldiocb->retry, ndlp, in lpfc_els_rsp_rnid_acc()
5232 ndlp->nlp_DID, ELS_CMD_ACC); in lpfc_els_rsp_rnid_acc()
5275 ndlp->nlp_DID, ndlp->nlp_flag, 0); in lpfc_els_rsp_rnid_acc()
5298 struct lpfc_iocbq *iocb, struct lpfc_nodelist *ndlp) in lpfc_els_clear_rrq() argument
5324 ndlp->nlp_DID, ndlp->nlp_flag, rrq->rrq_exchg); in lpfc_els_clear_rrq()
5329 prrq = lpfc_get_active_rrq(vport, xri, ndlp->nlp_DID); in lpfc_els_clear_rrq()
5348 struct lpfc_iocbq *oldiocb, struct lpfc_nodelist *ndlp) in lpfc_els_rsp_echo_acc() argument
5363 elsiocb = lpfc_prep_els_iocb(vport, 0, cmdsize, oldiocb->retry, ndlp, in lpfc_els_rsp_echo_acc()
5364 ndlp->nlp_DID, ELS_CMD_ACC); in lpfc_els_rsp_echo_acc()
5382 ndlp->nlp_DID, ndlp->nlp_flag, 0); in lpfc_els_rsp_echo_acc()
5418 struct lpfc_nodelist *ndlp, *next_ndlp; in lpfc_els_disc_adisc() local
5422 list_for_each_entry_safe(ndlp, next_ndlp, &vport->fc_nodes, nlp_listp) { in lpfc_els_disc_adisc()
5423 if (!NLP_CHK_NODE_ACT(ndlp)) in lpfc_els_disc_adisc()
5425 if (ndlp->nlp_state == NLP_STE_NPR_NODE && in lpfc_els_disc_adisc()
5426 (ndlp->nlp_flag & NLP_NPR_2B_DISC) != 0 && in lpfc_els_disc_adisc()
5427 (ndlp->nlp_flag & NLP_NPR_ADISC) != 0) { in lpfc_els_disc_adisc()
5429 ndlp->nlp_flag &= ~NLP_NPR_ADISC; in lpfc_els_disc_adisc()
5431 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_disc_adisc()
5432 lpfc_nlp_set_state(vport, ndlp, NLP_STE_ADISC_ISSUE); in lpfc_els_disc_adisc()
5433 lpfc_issue_els_adisc(vport, ndlp, 0); in lpfc_els_disc_adisc()
5476 struct lpfc_nodelist *ndlp, *next_ndlp; in lpfc_els_disc_plogi() local
5480 list_for_each_entry_safe(ndlp, next_ndlp, &vport->fc_nodes, nlp_listp) { in lpfc_els_disc_plogi()
5481 if (!NLP_CHK_NODE_ACT(ndlp)) in lpfc_els_disc_plogi()
5483 if (ndlp->nlp_state == NLP_STE_NPR_NODE && in lpfc_els_disc_plogi()
5484 (ndlp->nlp_flag & NLP_NPR_2B_DISC) != 0 && in lpfc_els_disc_plogi()
5485 (ndlp->nlp_flag & NLP_DELAY_TMO) == 0 && in lpfc_els_disc_plogi()
5486 (ndlp->nlp_flag & NLP_NPR_ADISC) == 0) { in lpfc_els_disc_plogi()
5487 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_disc_plogi()
5488 lpfc_nlp_set_state(vport, ndlp, NLP_STE_PLOGI_ISSUE); in lpfc_els_disc_plogi()
5489 lpfc_issue_els_plogi(vport, ndlp->nlp_DID, 0); in lpfc_els_disc_plogi()
5912 struct lpfc_vport *vport, struct lpfc_nodelist *ndlp) in lpfc_rdp_res_attach_port_names() argument
5923 memcpy(desc->port_names.wwnn, &ndlp->nlp_nodename, in lpfc_rdp_res_attach_port_names()
5926 memcpy(desc->port_names.wwpn, &ndlp->nlp_portname, in lpfc_rdp_res_attach_port_names()
5938 struct lpfc_nodelist *ndlp = rdp_context->ndlp; in lpfc_els_rdp_cmpl() local
5939 struct lpfc_vport *vport = ndlp->vport; in lpfc_els_rdp_cmpl()
5957 lpfc_max_els_tries, rdp_context->ndlp, in lpfc_els_rdp_cmpl()
5958 rdp_context->ndlp->nlp_DID, ELS_CMD_ACC); in lpfc_els_rdp_cmpl()
5959 lpfc_nlp_put(ndlp); in lpfc_els_rdp_cmpl()
5971 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_state, in lpfc_els_rdp_cmpl()
5972 ndlp->nlp_rpi); in lpfc_els_rdp_cmpl()
5999 (len + pcmd), vport, ndlp); in lpfc_els_rdp_cmpl()
6043 ndlp, ndlp->nlp_DID, ELS_CMD_LS_RJT); in lpfc_els_rdp_cmpl()
6044 lpfc_nlp_put(ndlp); in lpfc_els_rdp_cmpl()
6082 mbox->vport = rdp_context->ndlp->vport; in lpfc_get_rdp_info()
6116 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_rdp() argument
6166 rdp_context->ndlp = lpfc_nlp_get(ndlp); in lpfc_els_rcv_rdp()
6171 lpfc_printf_vlog(ndlp->vport, KERN_WARNING, LOG_ELS, in lpfc_els_rcv_rdp()
6175 lpfc_nlp_put(ndlp); in lpfc_els_rcv_rdp()
6188 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, NULL); in lpfc_els_rcv_rdp()
6200 struct lpfc_nodelist *ndlp; in lpfc_els_lcb_rsp() local
6210 ndlp = lcb_context->ndlp; in lpfc_els_lcb_rsp()
6235 lpfc_max_els_tries, ndlp, in lpfc_els_lcb_rsp()
6236 ndlp->nlp_DID, ELS_CMD_ACC); in lpfc_els_lcb_rsp()
6239 lpfc_nlp_put(ndlp); in lpfc_els_lcb_rsp()
6271 lpfc_max_els_tries, ndlp, in lpfc_els_lcb_rsp()
6272 ndlp->nlp_DID, ELS_CMD_LS_RJT); in lpfc_els_lcb_rsp()
6273 lpfc_nlp_put(ndlp); in lpfc_els_lcb_rsp()
6386 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_lcb() argument
6438 lcb_context->ndlp = lpfc_nlp_get(ndlp); in lpfc_els_rcv_lcb()
6440 lpfc_printf_vlog(ndlp->vport, KERN_ERR, LOG_TRACE_EVENT, in lpfc_els_rcv_lcb()
6443 lpfc_nlp_put(ndlp); in lpfc_els_rcv_lcb()
6451 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, NULL); in lpfc_els_rcv_lcb()
6586 struct lpfc_nodelist *ndlp = NULL; in lpfc_rscn_recovery_check() local
6589 list_for_each_entry(ndlp, &vport->fc_nodes, nlp_listp) { in lpfc_rscn_recovery_check()
6590 if (!NLP_CHK_NODE_ACT(ndlp) || in lpfc_rscn_recovery_check()
6591 (ndlp->nlp_state == NLP_STE_UNUSED_NODE) || in lpfc_rscn_recovery_check()
6592 !lpfc_rscn_payload_check(vport, ndlp->nlp_DID)) in lpfc_rscn_recovery_check()
6602 switch (ndlp->nlp_state) { in lpfc_rscn_recovery_check()
6614 if (ndlp->nlp_fc4_type & NLP_FC4_NVME && in lpfc_rscn_recovery_check()
6615 ndlp->nlp_type & (NLP_NVME_TARGET | NLP_NVME_DISCOVERY)) in lpfc_rscn_recovery_check()
6616 lpfc_nvme_rescan_port(vport, ndlp); in lpfc_rscn_recovery_check()
6618 lpfc_disc_state_machine(vport, ndlp, NULL, in lpfc_rscn_recovery_check()
6620 lpfc_cancel_retry_delay_tmo(vport, ndlp); in lpfc_rscn_recovery_check()
6692 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_rscn() argument
6727 lpfc_els_rsp_acc(vport, ELS_CMD_ACC, cmdiocb, ndlp, NULL); in lpfc_els_rcv_rscn()
6732 if (ndlp->nlp_fc4_type & NLP_FC4_NVME && in lpfc_els_rcv_rscn()
6733 ndlp->nlp_type & (NLP_NVME_TARGET | NLP_NVME_DISCOVERY)) in lpfc_els_rcv_rscn()
6734 lpfc_nvme_rescan_port(vport, ndlp); in lpfc_els_rcv_rscn()
6744 ndlp->nlp_DID, vport->port_state, ndlp->nlp_flag); in lpfc_els_rcv_rscn()
6746 lpfc_els_rsp_acc(vport, ELS_CMD_ACC, cmdiocb, ndlp, NULL); in lpfc_els_rcv_rscn()
6774 ndlp->nlp_DID, vport->port_state, in lpfc_els_rcv_rscn()
6775 ndlp->nlp_flag); in lpfc_els_rcv_rscn()
6778 ndlp, NULL); in lpfc_els_rcv_rscn()
6789 lpfc_els_rsp_acc(vport, ELS_CMD_ACC, cmdiocb, ndlp, NULL); in lpfc_els_rcv_rscn()
6803 ndlp->nlp_DID, vport->port_state, ndlp->nlp_flag); in lpfc_els_rcv_rscn()
6855 lpfc_els_rsp_acc(vport, ELS_CMD_ACC, cmdiocb, ndlp, NULL); in lpfc_els_rcv_rscn()
6862 ndlp->nlp_DID, vport->port_state, ndlp->nlp_flag); in lpfc_els_rcv_rscn()
6877 lpfc_els_rsp_acc(vport, ELS_CMD_ACC, cmdiocb, ndlp, NULL); in lpfc_els_rcv_rscn()
6902 struct lpfc_nodelist *ndlp; in lpfc_els_handle_rscn() local
6925 ndlp = lpfc_findnode_did(vport, NameServer_DID); in lpfc_els_handle_rscn()
6926 if (ndlp && NLP_CHK_NODE_ACT(ndlp) in lpfc_els_handle_rscn()
6927 && ndlp->nlp_state == NLP_STE_UNMAPPED_NODE) { in lpfc_els_handle_rscn()
6944 if (ndlp) { in lpfc_els_handle_rscn()
6945 ndlp = lpfc_enable_node(vport, ndlp, in lpfc_els_handle_rscn()
6947 if (!ndlp) { in lpfc_els_handle_rscn()
6951 ndlp->nlp_prev_state = NLP_STE_UNUSED_NODE; in lpfc_els_handle_rscn()
6953 ndlp = lpfc_nlp_init(vport, NameServer_DID); in lpfc_els_handle_rscn()
6954 if (!ndlp) { in lpfc_els_handle_rscn()
6958 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_handle_rscn()
6959 lpfc_nlp_set_state(vport, ndlp, NLP_STE_PLOGI_ISSUE); in lpfc_els_handle_rscn()
6961 ndlp->nlp_type |= NLP_FABRIC; in lpfc_els_handle_rscn()
7000 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_flogi() argument
7034 (void) lpfc_check_sparm(vport, ndlp, sp, CLASS3, 1); in lpfc_els_rcv_flogi()
7137 lpfc_els_rsp_acc(vport, ELS_CMD_FLOGI, cmdiocb, ndlp, NULL); in lpfc_els_rcv_flogi()
7163 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_rnid() argument
7182 lpfc_els_rsp_rnid_acc(vport, rn->Format, cmdiocb, ndlp); in lpfc_els_rcv_rnid()
7190 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, in lpfc_els_rcv_rnid()
7207 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_echo() argument
7216 lpfc_els_rsp_echo_acc(vport, pcmd, cmdiocb, ndlp); in lpfc_els_rcv_echo()
7235 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_lirr() argument
7244 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, NULL); in lpfc_els_rcv_lirr()
7266 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_rrq() argument
7268 lpfc_els_rsp_acc(vport, ELS_CMD_ACC, cmdiocb, ndlp, NULL); in lpfc_els_rcv_rrq()
7270 lpfc_els_clear_rrq(vport, cmdiocb, ndlp); in lpfc_els_rcv_rrq()
7300 struct lpfc_nodelist *ndlp; in lpfc_els_rsp_rls_acc() local
7307 ndlp = (struct lpfc_nodelist *)pmb->ctx_ndlp; in lpfc_els_rsp_rls_acc()
7320 lpfc_max_els_tries, ndlp, in lpfc_els_rsp_rls_acc()
7321 ndlp->nlp_DID, ELS_CMD_ACC); in lpfc_els_rsp_rls_acc()
7324 lpfc_nlp_put(ndlp); in lpfc_els_rsp_rls_acc()
7348 lpfc_printf_vlog(ndlp->vport, KERN_INFO, LOG_ELS, in lpfc_els_rsp_rls_acc()
7352 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_state, in lpfc_els_rsp_rls_acc()
7353 ndlp->nlp_rpi); in lpfc_els_rsp_rls_acc()
7380 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_rls() argument
7386 if ((ndlp->nlp_state != NLP_STE_UNMAPPED_NODE) && in lpfc_els_rcv_rls()
7387 (ndlp->nlp_state != NLP_STE_MAPPED_NODE)) in lpfc_els_rcv_rls()
7397 mbox->ctx_ndlp = lpfc_nlp_get(ndlp); in lpfc_els_rcv_rls()
7407 lpfc_nlp_put(ndlp); in lpfc_els_rcv_rls()
7416 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, NULL); in lpfc_els_rcv_rls()
7443 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_rtv() argument
7453 if ((ndlp->nlp_state != NLP_STE_UNMAPPED_NODE) && in lpfc_els_rcv_rtv()
7454 (ndlp->nlp_state != NLP_STE_MAPPED_NODE)) in lpfc_els_rcv_rtv()
7460 lpfc_max_els_tries, ndlp, in lpfc_els_rcv_rtv()
7461 ndlp->nlp_DID, ELS_CMD_ACC); in lpfc_els_rcv_rtv()
7484 lpfc_printf_vlog(ndlp->vport, KERN_INFO, LOG_ELS, in lpfc_els_rcv_rtv()
7489 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_state, in lpfc_els_rcv_rtv()
7490 ndlp->nlp_rpi, in lpfc_els_rcv_rtv()
7504 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, NULL); in lpfc_els_rcv_rtv()
7522 lpfc_issue_els_rrq(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, in lpfc_issue_els_rrq() argument
7533 if (ndlp != rrq->ndlp) in lpfc_issue_els_rrq()
7534 ndlp = rrq->ndlp; in lpfc_issue_els_rrq()
7535 if (!ndlp || !NLP_CHK_NODE_ACT(ndlp)) in lpfc_issue_els_rrq()
7540 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, 0, ndlp, did, in lpfc_issue_els_rrq()
7588 struct lpfc_nodelist *ndlp = lpfc_findnode_did(rrq->vport, in lpfc_send_rrq() local
7590 if (!ndlp) in lpfc_send_rrq()
7593 if (lpfc_test_rrq_active(phba, ndlp, rrq->xritag)) in lpfc_send_rrq()
7594 return lpfc_issue_els_rrq(rrq->vport, ndlp, in lpfc_send_rrq()
7621 struct lpfc_iocbq *oldiocb, struct lpfc_nodelist *ndlp) in lpfc_els_rsp_rpl_acc() argument
7629 elsiocb = lpfc_prep_els_iocb(vport, 0, cmdsize, oldiocb->retry, ndlp, in lpfc_els_rsp_rpl_acc()
7630 ndlp->nlp_DID, ELS_CMD_ACC); in lpfc_els_rsp_rpl_acc()
7660 ndlp->nlp_DID, ndlp->nlp_flag, ndlp->nlp_state, in lpfc_els_rsp_rpl_acc()
7661 ndlp->nlp_rpi); in lpfc_els_rsp_rpl_acc()
7690 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_rpl() argument
7699 if ((ndlp->nlp_state != NLP_STE_UNMAPPED_NODE) && in lpfc_els_rcv_rpl()
7700 (ndlp->nlp_state != NLP_STE_MAPPED_NODE)) { in lpfc_els_rcv_rpl()
7706 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, in lpfc_els_rcv_rpl()
7725 lpfc_els_rsp_rpl_acc(vport, cmdsize, cmdiocb, ndlp); in lpfc_els_rcv_rpl()
7756 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_farp() argument
7795 if ((ndlp->nlp_state == NLP_STE_UNMAPPED_NODE) || in lpfc_els_rcv_farp()
7796 (ndlp->nlp_state == NLP_STE_MAPPED_NODE)) { in lpfc_els_rcv_farp()
7799 ndlp->nlp_prev_state = ndlp->nlp_state; in lpfc_els_rcv_farp()
7800 lpfc_nlp_set_state(vport, ndlp, in lpfc_els_rcv_farp()
7802 lpfc_issue_els_plogi(vport, ndlp->nlp_DID, 0); in lpfc_els_rcv_farp()
7829 struct lpfc_nodelist *ndlp) in lpfc_els_rcv_farpr() argument
7846 lpfc_els_rsp_acc(vport, ELS_CMD_ACC, cmdiocb, ndlp, NULL); in lpfc_els_rcv_farpr()
8004 struct lpfc_nodelist *ndlp; in lpfc_els_timeout_handler() local
8005 ndlp = __lpfc_findnode_rpi(vport, cmd->ulpContext); in lpfc_els_timeout_handler()
8006 if (ndlp && NLP_CHK_NODE_ACT(ndlp)) in lpfc_els_timeout_handler()
8007 remote_ID = ndlp->nlp_DID; in lpfc_els_timeout_handler()
8229 struct lpfc_nodelist *ndlp; in lpfc_send_els_failure_event() local
8232 ndlp = cmdiocbp->context1; in lpfc_send_els_failure_event()
8233 if (!ndlp || !NLP_CHK_NODE_ACT(ndlp)) in lpfc_send_els_failure_event()
8239 memcpy(lsrjt_event.header.wwpn, &ndlp->nlp_portname, in lpfc_send_els_failure_event()
8241 memcpy(lsrjt_event.header.wwnn, &ndlp->nlp_nodename, in lpfc_send_els_failure_event()
8263 memcpy(fabric_event.wwpn, &ndlp->nlp_portname, in lpfc_send_els_failure_event()
8265 memcpy(fabric_event.wwnn, &ndlp->nlp_nodename, in lpfc_send_els_failure_event()
8288 struct lpfc_nodelist *ndlp, in lpfc_send_els_event() argument
8335 memcpy(els_data->wwpn, &ndlp->nlp_portname, sizeof(struct lpfc_name)); in lpfc_send_els_event()
8336 memcpy(els_data->wwnn, &ndlp->nlp_nodename, sizeof(struct lpfc_name)); in lpfc_send_els_event()
8460 struct lpfc_nodelist *ndlp; in lpfc_els_unsol_buffer() local
8499 ndlp = lpfc_findnode_did(vport, did); in lpfc_els_unsol_buffer()
8500 if (!ndlp) { in lpfc_els_unsol_buffer()
8502 ndlp = lpfc_nlp_init(vport, did); in lpfc_els_unsol_buffer()
8503 if (!ndlp) in lpfc_els_unsol_buffer()
8505 lpfc_nlp_set_state(vport, ndlp, NLP_STE_NPR_NODE); in lpfc_els_unsol_buffer()
8508 ndlp->nlp_type |= NLP_FABRIC; in lpfc_els_unsol_buffer()
8509 } else if (!NLP_CHK_NODE_ACT(ndlp)) { in lpfc_els_unsol_buffer()
8510 ndlp = lpfc_enable_node(vport, ndlp, in lpfc_els_unsol_buffer()
8512 if (!ndlp) in lpfc_els_unsol_buffer()
8514 lpfc_nlp_set_state(vport, ndlp, NLP_STE_NPR_NODE); in lpfc_els_unsol_buffer()
8517 ndlp->nlp_type |= NLP_FABRIC; in lpfc_els_unsol_buffer()
8518 } else if (ndlp->nlp_state == NLP_STE_UNUSED_NODE) { in lpfc_els_unsol_buffer()
8520 ndlp = lpfc_nlp_get(ndlp); 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()
8535 if (ndlp->nlp_flag & NLP_IN_DEV_LOSS) { in lpfc_els_unsol_buffer()
8538 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
8543 elsiocb->context1 = lpfc_nlp_get(ndlp); in lpfc_els_unsol_buffer()
8569 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8572 ndlp = lpfc_plogi_confirm_nport(phba, payload, ndlp); in lpfc_els_unsol_buffer()
8587 lpfc_send_els_event(vport, ndlp, payload); in lpfc_els_unsol_buffer()
8606 ndlp->nlp_flag &= ~NLP_TARGET_REMOVE; in lpfc_els_unsol_buffer()
8609 lpfc_disc_state_machine(vport, ndlp, elsiocb, in lpfc_els_unsol_buffer()
8616 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8632 lpfc_els_rcv_flogi(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
8634 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
8639 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8642 lpfc_send_els_event(vport, ndlp, payload); in lpfc_els_unsol_buffer()
8648 lpfc_disc_state_machine(vport, ndlp, elsiocb, NLP_EVT_RCV_LOGO); in lpfc_els_unsol_buffer()
8653 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8656 lpfc_send_els_event(vport, ndlp, payload); in lpfc_els_unsol_buffer()
8662 lpfc_disc_state_machine(vport, ndlp, elsiocb, NLP_EVT_RCV_PRLO); in lpfc_els_unsol_buffer()
8666 lpfc_els_rcv_lcb(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
8670 lpfc_els_rcv_rdp(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
8674 lpfc_els_rcv_rscn(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
8676 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
8681 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8683 lpfc_send_els_event(vport, ndlp, payload); in lpfc_els_unsol_buffer()
8690 lpfc_disc_state_machine(vport, ndlp, elsiocb, in lpfc_els_unsol_buffer()
8696 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8704 lpfc_disc_state_machine(vport, ndlp, elsiocb, in lpfc_els_unsol_buffer()
8710 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8713 lpfc_els_rcv_farpr(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
8718 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8721 lpfc_els_rcv_farp(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
8726 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8729 lpfc_els_rcv_fan(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
8735 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8744 lpfc_disc_state_machine(vport, ndlp, elsiocb, NLP_EVT_RCV_PRLI); in lpfc_els_unsol_buffer()
8749 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8752 lpfc_els_rcv_lirr(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
8754 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
8759 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8762 lpfc_els_rcv_rls(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
8764 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
8769 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8772 lpfc_els_rcv_rpl(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
8774 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
8779 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8782 lpfc_els_rcv_rnid(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
8784 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
8789 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8791 lpfc_els_rcv_rtv(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
8793 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
8798 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8801 lpfc_els_rcv_rrq(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
8803 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
8808 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8811 lpfc_els_rcv_echo(vport, elsiocb, ndlp); in lpfc_els_unsol_buffer()
8813 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
8823 did, vport->port_state, ndlp->nlp_flag); in lpfc_els_unsol_buffer()
8844 lpfc_nlp_put(ndlp); in lpfc_els_unsol_buffer()
8854 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, elsiocb, ndlp, in lpfc_els_unsol_buffer()
8984 struct lpfc_nodelist *ndlp; in lpfc_start_fdmi() local
8990 ndlp = lpfc_findnode_did(vport, FDMI_DID); in lpfc_start_fdmi()
8991 if (!ndlp) { in lpfc_start_fdmi()
8992 ndlp = lpfc_nlp_init(vport, FDMI_DID); in lpfc_start_fdmi()
8993 if (ndlp) { in lpfc_start_fdmi()
8994 ndlp->nlp_type |= NLP_FABRIC; in lpfc_start_fdmi()
8999 if (!NLP_CHK_NODE_ACT(ndlp)) in lpfc_start_fdmi()
9000 ndlp = lpfc_enable_node(vport, ndlp, NLP_STE_NPR_NODE); in lpfc_start_fdmi()
9002 if (ndlp) { in lpfc_start_fdmi()
9003 lpfc_nlp_set_state(vport, ndlp, NLP_STE_PLOGI_ISSUE); in lpfc_start_fdmi()
9004 lpfc_issue_els_plogi(vport, ndlp->nlp_DID, 0); in lpfc_start_fdmi()
9024 struct lpfc_nodelist *ndlp; in lpfc_do_scr_ns_plogi() local
9044 ndlp = lpfc_findnode_did(vport, NameServer_DID); in lpfc_do_scr_ns_plogi()
9045 if (!ndlp) { in lpfc_do_scr_ns_plogi()
9046 ndlp = lpfc_nlp_init(vport, NameServer_DID); in lpfc_do_scr_ns_plogi()
9047 if (!ndlp) { in lpfc_do_scr_ns_plogi()
9057 } else if (!NLP_CHK_NODE_ACT(ndlp)) { in lpfc_do_scr_ns_plogi()
9058 ndlp = lpfc_enable_node(vport, ndlp, NLP_STE_UNUSED_NODE); in lpfc_do_scr_ns_plogi()
9059 if (!ndlp) { in lpfc_do_scr_ns_plogi()
9070 ndlp->nlp_type |= NLP_FABRIC; in lpfc_do_scr_ns_plogi()
9072 lpfc_nlp_set_state(vport, ndlp, NLP_STE_PLOGI_ISSUE); in lpfc_do_scr_ns_plogi()
9074 if (lpfc_issue_els_plogi(vport, ndlp->nlp_DID, 0)) { in lpfc_do_scr_ns_plogi()
9104 struct lpfc_nodelist *ndlp = (struct lpfc_nodelist *)pmb->ctx_ndlp; in lpfc_cmpl_reg_new_vport() local
9148 lpfc_nlp_put(ndlp); in lpfc_cmpl_reg_new_vport()
9196 lpfc_nlp_put(ndlp); in lpfc_cmpl_reg_new_vport()
9213 struct lpfc_nodelist *ndlp) in lpfc_register_new_vport() argument
9222 mbox->ctx_ndlp = lpfc_nlp_get(ndlp); in lpfc_register_new_vport()
9229 lpfc_nlp_put(ndlp); in lpfc_register_new_vport()
9261 struct lpfc_nodelist *ndlp; in lpfc_cancel_all_vport_retry_delay_timer() local
9274 ndlp = lpfc_findnode_did(vports[i], Fabric_DID); in lpfc_cancel_all_vport_retry_delay_timer()
9275 if (ndlp) in lpfc_cancel_all_vport_retry_delay_timer()
9276 lpfc_cancel_retry_delay_tmo(vports[i], ndlp); in lpfc_cancel_all_vport_retry_delay_timer()
9294 struct lpfc_nodelist *ndlp; in lpfc_retry_pport_discovery() local
9301 ndlp = lpfc_findnode_did(phba->pport, Fabric_DID); in lpfc_retry_pport_discovery()
9302 if (!ndlp) in lpfc_retry_pport_discovery()
9306 mod_timer(&ndlp->nlp_delayfunc, jiffies + msecs_to_jiffies(1000)); in lpfc_retry_pport_discovery()
9308 ndlp->nlp_flag |= NLP_DELAY_TMO; in lpfc_retry_pport_discovery()
9310 ndlp->nlp_last_elscmd = ELS_CMD_FLOGI; in lpfc_retry_pport_discovery()
9363 struct lpfc_nodelist *ndlp = (struct lpfc_nodelist *) cmdiocb->context1; in lpfc_cmpl_els_fdisc() local
9431 if (!NLP_CHK_NODE_ACT(ndlp) || in lpfc_cmpl_els_fdisc()
9459 lpfc_register_new_vport(phba, vport, ndlp); in lpfc_cmpl_els_fdisc()
9466 lpfc_register_new_vport(phba, vport, ndlp); in lpfc_cmpl_els_fdisc()
9476 lpfc_nlp_put(ndlp); in lpfc_cmpl_els_fdisc()
9502 lpfc_issue_els_fdisc(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, in lpfc_issue_els_fdisc() argument
9511 int did = ndlp->nlp_DID; in lpfc_issue_els_fdisc()
9517 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp, did, in lpfc_issue_els_fdisc()
9603 struct lpfc_nodelist *ndlp; in lpfc_cmpl_els_npiv_logo() local
9606 ndlp = (struct lpfc_nodelist *)cmdiocb->context1; in lpfc_cmpl_els_npiv_logo()
9616 lpfc_nlp_put(ndlp); in lpfc_cmpl_els_npiv_logo()
9622 ndlp->nlp_DID, irsp->ulpStatus, irsp->un.ulpWord[4], in lpfc_cmpl_els_npiv_logo()
9651 lpfc_issue_els_npiv_logo(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp) in lpfc_issue_els_npiv_logo() argument
9660 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, 0, ndlp, ndlp->nlp_DID, in lpfc_issue_els_npiv_logo()
9676 ndlp->nlp_DID, ndlp->nlp_flag, 0); in lpfc_issue_els_npiv_logo()
9680 ndlp->nlp_flag |= NLP_LOGO_SND; in lpfc_issue_els_npiv_logo()
9685 ndlp->nlp_flag &= ~NLP_LOGO_SND; in lpfc_issue_els_npiv_logo()
9989 void lpfc_fabric_abort_nport(struct lpfc_nodelist *ndlp) in lpfc_fabric_abort_nport() argument
9992 struct lpfc_hba *phba = ndlp->phba; in lpfc_fabric_abort_nport()
10004 if ((lpfc_check_sli_ndlp(phba, pring, piocb, ndlp))) { in lpfc_fabric_abort_nport()
10058 if (sglq_entry->ndlp && sglq_entry->ndlp->vport == vport) in lpfc_sli4_vport_delete_els_xri_aborted()
10059 sglq_entry->ndlp = NULL; in lpfc_sli4_vport_delete_els_xri_aborted()
10084 struct lpfc_nodelist *ndlp; in lpfc_sli4_els_xri_aborted() local
10095 ndlp = sglq_entry->ndlp; in lpfc_sli4_els_xri_aborted()
10096 sglq_entry->ndlp = NULL; in lpfc_sli4_els_xri_aborted()
10102 lpfc_set_rrq_active(phba, ndlp, in lpfc_sli4_els_xri_aborted()
10142 struct lpfc_nodelist *ndlp) in lpfc_sli_abts_recover_port() argument
10150 if (ndlp->nlp_state != NLP_STE_MAPPED_NODE) { in lpfc_sli_abts_recover_port()
10153 "rport in state 0x%x\n", ndlp->nlp_state); in lpfc_sli_abts_recover_port()
10160 shost->host_no, ndlp->nlp_DID, in lpfc_sli_abts_recover_port()
10161 vport->vpi, ndlp->nlp_rpi, ndlp->nlp_state, in lpfc_sli_abts_recover_port()
10162 ndlp->nlp_flag); in lpfc_sli_abts_recover_port()
10168 ndlp->nlp_fcp_info &= ~NLP_FCP_2_DEVICE; in lpfc_sli_abts_recover_port()
10169 ndlp->nlp_flag |= NLP_ISSUE_LOGO; in lpfc_sli_abts_recover_port()
10171 lpfc_unreg_rpi(vport, ndlp); in lpfc_sli_abts_recover_port()