Lines Matching refs:vport

48 lpfc_check_adisc(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
69 lpfc_check_sparm(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
72 volatile struct serv_parm *hsp = &vport->fc_sparam;
151 lpfc_printf_vlog(vport, KERN_ERR, LOG_DISCOVERY,
212 lpfc_printf_vlog(ndlp->vport, KERN_INFO, LOG_DISCOVERY,
273 lpfc_rcv_plogi(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
276 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
277 struct lpfc_hba *phba = vport->phba;
287 if (vport->port_state <= LPFC_FDISC) {
292 if (vport->fc_flag & FC_PT2PT) {
294 if (!(vport->fc_flag & FC_PT2PT_PLOGI)) {
303 lpfc_disc_start(vport);
305 lpfc_initial_flogi(vport);
309 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb,
318 lpfc_printf_vlog(vport, KERN_ERR, LOG_ELS,
322 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp,
327 lpfc_printf_vlog(vport, KERN_ERR, LOG_ELS,
331 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp,
335 if ((lpfc_check_sparm(vport, ndlp, sp, CLASS3, 0) == 0)) {
339 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp,
346 lpfc_printf_vlog(vport, KERN_INFO, LOG_ELS,
350 ndlp->nlp_rpi, vport->port_state,
351 vport->fc_flag);
353 if (vport->cfg_fcp_class == 2 && sp->cls2.classValid)
379 lpfc_els_rsp_acc(vport, ELS_CMD_PLOGI, cmdiocb, ndlp, NULL);
384 if ((vport->fc_flag & FC_PT2PT) &&
385 !(vport->fc_flag & FC_PT2PT_PLOGI)) {
388 vport->fc_myDID = icmd->un.rcvels.parmRo;
394 mbox->vport = vport;
406 lpfc_issue_reg_vfi(vport);
408 lpfc_can_disctmo(vport);
416 lpfc_unreg_rpi(vport, ndlp);
418 rc = lpfc_reg_rpi(phba, vport->vpi, icmd->un.rcvels.remoteID,
433 mbox->vport = vport;
452 if ((vport->port_type == LPFC_NPIV_PORT &&
453 vport->cfg_restrict_login)) {
465 rc = lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb,
471 rc = lpfc_els_rsp_acc(vport, ELS_CMD_PLOGI, cmdiocb, ndlp, mbox);
478 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, NULL);
493 struct lpfc_vport *vport;
500 vport = mboxq->vport;
504 lpfc_els_rsp_adisc_acc(vport, elsiocb, ndlp);
506 lpfc_els_rsp_acc(vport, ELS_CMD_PLOGI, elsiocb,
514 lpfc_rcv_padisc(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
517 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
543 if (icmd->ulpStatus == 0 && lpfc_check_adisc(vport, ndlp, pnn, ppn)) {
550 if (vport->phba->sli_rev == LPFC_SLI_REV4) {
569 lpfc_els_rsp_adisc_acc(vport, cmdiocb, ndlp);
571 lpfc_els_rsp_acc(vport, ELS_CMD_PLOGI, cmdiocb,
577 lpfc_nlp_set_state(vport, ndlp, NLP_STE_MAPPED_NODE);
579 lpfc_nlp_set_state(vport, ndlp, NLP_STE_UNMAPPED_NODE);
588 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, NULL);
598 lpfc_nlp_set_state(vport, ndlp, NLP_STE_NPR_NODE);
603 lpfc_rcv_logo(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
606 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
607 struct lpfc_hba *phba = vport->phba;
619 lpfc_els_rsp_acc(vport, ELS_CMD_PRLO, cmdiocb, ndlp, NULL);
621 lpfc_els_rsp_acc(vport, ELS_CMD_ACC, cmdiocb, ndlp, NULL);
623 if (vport->port_state <= LPFC_FDISC)
625 lpfc_linkdown_port(vport);
627 vport->fc_flag |= FC_VPORT_LOGO_RCVD;
654 vport->port_state = LPFC_FDISC;
676 lpfc_nlp_set_state(vport, ndlp, NLP_STE_NPR_NODE);
690 lpfc_rcv_prli(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
725 lpfc_debugfs_disc_trc(vport, LPFC_DISC_TRC_RPORT,
734 lpfc_disc_set_adisc(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp)
736 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
743 if (!(vport->fc_flag & FC_PT2PT)) {
745 if ((vport->cfg_use_adisc && (vport->fc_flag & FC_RSCN_MODE)) ||
755 lpfc_unreg_rpi(vport, ndlp);
762 * @vport: Pointer to lpfc_vport structure.
770 struct lpfc_vport *vport,
779 lpfc_printf_vlog(vport, KERN_ERR, LOG_MBOX,
782 lpfc_unreg_login(phba, vport->vpi, rpi, pmb);
791 lpfc_disc_illegal(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
799 phba = vport->phba;
806 lpfc_release_rpi(phba, vport, rpi);
808 lpfc_printf_vlog(vport, KERN_ERR, LOG_DISCOVERY,
817 lpfc_cmpl_plogi_illegal(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
826 lpfc_printf_vlog(vport, KERN_ERR, LOG_DISCOVERY,
838 lpfc_rcv_plogi_unused_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
845 if (lpfc_rcv_plogi(vport, ndlp, cmdiocb)) {
852 lpfc_rcv_els_unused_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
855 lpfc_issue_els_logo(vport, ndlp, 0);
860 lpfc_rcv_logo_unused_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
863 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
869 lpfc_els_rsp_acc(vport, ELS_CMD_ACC, cmdiocb, ndlp, NULL);
875 lpfc_cmpl_logo_unused_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
882 lpfc_device_rm_unused_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
889 lpfc_device_recov_unused_node(struct lpfc_vport *vport,
897 lpfc_rcv_plogi_plogi_issue(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
900 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
901 struct lpfc_hba *phba = vport->phba;
915 port_cmp = memcmp(&vport->fc_portname, &sp->portName,
923 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp,
926 if (lpfc_rcv_plogi(vport, ndlp, cmdiocb) &&
928 (vport->num_disc_nodes)) {
933 lpfc_more_plogi(vport);
934 if (vport->num_disc_nodes == 0) {
936 vport->fc_flag &= ~FC_NDISC_ACTIVE;
938 lpfc_can_disctmo(vport);
939 lpfc_end_rscn(vport);
948 lpfc_rcv_prli_plogi_issue(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
957 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, NULL);
962 lpfc_rcv_logo_plogi_issue(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
968 lpfc_els_abort(vport->phba, ndlp);
970 lpfc_rcv_logo(vport, ndlp, cmdiocb, ELS_CMD_LOGO);
975 lpfc_rcv_els_plogi_issue(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
978 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
979 struct lpfc_hba *phba = vport->phba;
986 lpfc_els_rsp_acc(vport, ELS_CMD_ACC, cmdiocb, ndlp, NULL);
988 lpfc_issue_els_logo(vport, ndlp, 0);
998 lpfc_nlp_set_state(vport, ndlp, NLP_STE_NPR_NODE);
1004 lpfc_cmpl_plogi_plogi_issue(struct lpfc_vport *vport,
1009 struct lpfc_hba *phba = vport->phba;
1010 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
1044 lpfc_printf_vlog(vport, KERN_ERR, LOG_ELS,
1048 if (!lpfc_check_sparm(vport, ndlp, sp, CLASS3, 0))
1051 lpfc_printf_vlog(vport, KERN_INFO, LOG_ELS,
1055 if (vport->cfg_fcp_class == 2 && (sp->cls2.classValid))
1074 lpfc_printf_vlog(vport, KERN_ERR, LOG_ELS,
1082 lpfc_unreg_rpi(vport, ndlp);
1084 if (lpfc_reg_rpi(phba, vport->vpi, irsp->un.elsreq64.remoteID,
1098 mbox->vport = vport;
1101 lpfc_nlp_set_state(vport, ndlp,
1116 lpfc_printf_vlog(vport, KERN_ERR, LOG_ELS,
1124 lpfc_printf_vlog(vport, KERN_ERR, LOG_ELS,
1134 lpfc_vport_set_state(vport, FC_VPORT_FAILED);
1135 lpfc_printf_vlog(vport, KERN_ERR, LOG_ELS,
1145 lpfc_nlp_set_state(vport, ndlp, NLP_STE_NPR_NODE);
1153 lpfc_cmpl_logo_plogi_issue(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
1160 lpfc_cmpl_reglogin_plogi_issue(struct lpfc_vport *vport,
1168 phba = vport->phba;
1173 lpfc_release_rpi(phba, vport, rpi);
1179 lpfc_device_rm_plogi_issue(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
1182 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
1191 lpfc_els_abort(vport->phba, ndlp);
1193 lpfc_drop_node(vport, ndlp);
1199 lpfc_device_recov_plogi_issue(struct lpfc_vport *vport,
1204 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
1205 struct lpfc_hba *phba = vport->phba;
1210 if (vport->fc_flag & FC_RSCN_DEFERRED)
1217 lpfc_nlp_set_state(vport, ndlp, NLP_STE_NPR_NODE);
1226 lpfc_rcv_plogi_adisc_issue(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
1229 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
1230 struct lpfc_hba *phba = vport->phba;
1238 if (lpfc_rcv_plogi(vport, ndlp, cmdiocb)) {
1243 if (vport->num_disc_nodes)
1244 lpfc_more_adisc(vport);
1249 lpfc_issue_els_plogi(vport, ndlp->nlp_DID, 0);
1250 lpfc_nlp_set_state(vport, ndlp, NLP_STE_PLOGI_ISSUE);
1256 lpfc_rcv_prli_adisc_issue(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
1261 lpfc_els_rsp_prli_acc(vport, cmdiocb, ndlp);
1266 lpfc_rcv_logo_adisc_issue(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
1269 struct lpfc_hba *phba = vport->phba;
1277 lpfc_rcv_logo(vport, ndlp, cmdiocb, ELS_CMD_LOGO);
1282 lpfc_rcv_padisc_adisc_issue(struct lpfc_vport *vport,
1290 lpfc_rcv_padisc(vport, ndlp, cmdiocb);
1295 lpfc_rcv_prlo_adisc_issue(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
1303 lpfc_rcv_logo(vport, ndlp, cmdiocb, ELS_CMD_PRLO);
1308 lpfc_cmpl_adisc_adisc_issue(struct lpfc_vport *vport,
1312 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
1313 struct lpfc_hba *phba = vport->phba;
1326 (!lpfc_check_adisc(vport, ndlp, &ap->nodeName, &ap->portName))) {
1339 lpfc_nlp_set_state(vport, ndlp, NLP_STE_NPR_NODE);
1340 lpfc_unreg_rpi(vport, ndlp);
1355 lpfc_nlp_set_state(vport, ndlp, NLP_STE_MAPPED_NODE);
1358 lpfc_nlp_set_state(vport, ndlp, NLP_STE_UNMAPPED_NODE);
1365 lpfc_device_rm_adisc_issue(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
1368 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
1377 lpfc_els_abort(vport->phba, ndlp);
1379 lpfc_drop_node(vport, ndlp);
1385 lpfc_device_recov_adisc_issue(struct lpfc_vport *vport,
1390 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
1391 struct lpfc_hba *phba = vport->phba;
1396 if (vport->fc_flag & FC_RSCN_DEFERRED)
1403 lpfc_nlp_set_state(vport, ndlp, NLP_STE_NPR_NODE);
1407 lpfc_disc_set_adisc(vport, ndlp);
1412 lpfc_rcv_plogi_reglogin_issue(struct lpfc_vport *vport,
1419 lpfc_rcv_plogi(vport, ndlp, cmdiocb);
1424 lpfc_rcv_prli_reglogin_issue(struct lpfc_vport *vport,
1431 lpfc_els_rsp_prli_acc(vport, cmdiocb, ndlp);
1436 lpfc_rcv_logo_reglogin_issue(struct lpfc_vport *vport,
1441 struct lpfc_hba *phba = vport->phba;
1476 lpfc_rcv_logo(vport, ndlp, cmdiocb, ELS_CMD_LOGO);
1481 lpfc_rcv_padisc_reglogin_issue(struct lpfc_vport *vport,
1488 lpfc_rcv_padisc(vport, ndlp, cmdiocb);
1493 lpfc_rcv_prlo_reglogin_issue(struct lpfc_vport *vport,
1501 lpfc_els_rsp_acc(vport, ELS_CMD_PRLO, cmdiocb, ndlp, NULL);
1506 lpfc_cmpl_reglogin_reglogin_issue(struct lpfc_vport *vport,
1511 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
1518 lpfc_printf_vlog(vport, KERN_ERR, LOG_DISCOVERY,
1521 did, mb->mbxStatus, vport->port_state,
1530 lpfc_nlp_set_state(vport, ndlp, NLP_STE_NPR_NODE);
1542 lpfc_issue_els_logo(vport, ndlp, 0);
1544 lpfc_nlp_set_state(vport, ndlp, NLP_STE_NPR_NODE);
1549 if (vport->phba->sli_rev < LPFC_SLI_REV4)
1557 lpfc_nlp_set_state(vport, ndlp, NLP_STE_PRLI_ISSUE);
1558 lpfc_issue_els_prli(vport, ndlp, 0);
1561 lpfc_nlp_set_state(vport, ndlp, NLP_STE_UNMAPPED_NODE);
1567 lpfc_device_rm_reglogin_issue(struct lpfc_vport *vport,
1572 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
1580 lpfc_drop_node(vport, ndlp);
1586 lpfc_device_recov_reglogin_issue(struct lpfc_vport *vport,
1591 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
1596 if (vport->fc_flag & FC_RSCN_DEFERRED)
1600 lpfc_nlp_set_state(vport, ndlp, NLP_STE_NPR_NODE);
1605 lpfc_disc_set_adisc(vport, ndlp);
1610 lpfc_rcv_plogi_prli_issue(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
1617 lpfc_rcv_plogi(vport, ndlp, cmdiocb);
1622 lpfc_rcv_prli_prli_issue(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
1627 lpfc_els_rsp_prli_acc(vport, cmdiocb, ndlp);
1632 lpfc_rcv_logo_prli_issue(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
1638 lpfc_els_abort(vport->phba, ndlp);
1640 lpfc_rcv_logo(vport, ndlp, cmdiocb, ELS_CMD_LOGO);
1645 lpfc_rcv_padisc_prli_issue(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
1650 lpfc_rcv_padisc(vport, ndlp, cmdiocb);
1660 lpfc_rcv_prlo_prli_issue(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
1665 lpfc_els_rsp_acc(vport, ELS_CMD_PRLO, cmdiocb, ndlp, NULL);
1670 lpfc_cmpl_prli_prli_issue(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
1673 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
1675 struct lpfc_hba *phba = vport->phba;
1685 if ((vport->port_type == LPFC_NPIV_PORT) &&
1686 vport->cfg_restrict_login) {
1690 lpfc_nlp_set_state(vport, ndlp, NLP_STE_UNMAPPED_NODE);
1711 (vport->port_type == LPFC_NPIV_PORT) &&
1712 vport->cfg_restrict_login) {
1717 lpfc_issue_els_logo(vport, ndlp, 0);
1720 lpfc_nlp_set_state(vport, ndlp, NLP_STE_NPR_NODE);
1726 lpfc_nlp_set_state(vport, ndlp, NLP_STE_MAPPED_NODE);
1728 lpfc_nlp_set_state(vport, ndlp, NLP_STE_UNMAPPED_NODE);
1751 lpfc_device_rm_prli_issue(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
1754 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
1763 lpfc_els_abort(vport->phba, ndlp);
1765 lpfc_drop_node(vport, ndlp);
1788 lpfc_device_recov_prli_issue(struct lpfc_vport *vport,
1793 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
1794 struct lpfc_hba *phba = vport->phba;
1799 if (vport->fc_flag & FC_RSCN_DEFERRED)
1806 lpfc_nlp_set_state(vport, ndlp, NLP_STE_NPR_NODE);
1810 lpfc_disc_set_adisc(vport, ndlp);
1815 lpfc_rcv_plogi_logo_issue(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
1824 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, NULL);
1829 lpfc_rcv_prli_logo_issue(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
1838 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, NULL);
1843 lpfc_rcv_logo_logo_issue(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
1846 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
1852 lpfc_els_rsp_acc(vport, ELS_CMD_ACC, cmdiocb, ndlp, NULL);
1857 lpfc_rcv_padisc_logo_issue(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
1866 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, NULL);
1871 lpfc_rcv_prlo_logo_issue(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
1880 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, NULL);
1885 lpfc_cmpl_logo_logo_issue(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
1888 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
1891 lpfc_nlp_set_state(vport, ndlp, NLP_STE_NPR_NODE);
1895 lpfc_disc_set_adisc(vport, ndlp);
1900 lpfc_device_rm_logo_issue(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
1913 lpfc_device_recov_logo_issue(struct lpfc_vport *vport,
1926 lpfc_rcv_plogi_unmap_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
1931 lpfc_rcv_plogi(vport, ndlp, cmdiocb);
1936 lpfc_rcv_prli_unmap_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
1941 lpfc_rcv_prli(vport, ndlp, cmdiocb);
1942 lpfc_els_rsp_prli_acc(vport, cmdiocb, ndlp);
1947 lpfc_rcv_logo_unmap_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
1952 lpfc_rcv_logo(vport, ndlp, cmdiocb, ELS_CMD_LOGO);
1957 lpfc_rcv_padisc_unmap_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
1962 lpfc_rcv_padisc(vport, ndlp, cmdiocb);
1967 lpfc_rcv_prlo_unmap_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
1972 lpfc_els_rsp_acc(vport, ELS_CMD_PRLO, cmdiocb, ndlp, NULL);
1977 lpfc_device_recov_unmap_node(struct lpfc_vport *vport,
1982 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
1985 lpfc_nlp_set_state(vport, ndlp, NLP_STE_NPR_NODE);
1989 lpfc_disc_set_adisc(vport, ndlp);
1995 lpfc_rcv_plogi_mapped_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
2000 lpfc_rcv_plogi(vport, ndlp, cmdiocb);
2005 lpfc_rcv_prli_mapped_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
2010 lpfc_els_rsp_prli_acc(vport, cmdiocb, ndlp);
2015 lpfc_rcv_logo_mapped_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
2020 lpfc_rcv_logo(vport, ndlp, cmdiocb, ELS_CMD_LOGO);
2025 lpfc_rcv_padisc_mapped_node(struct lpfc_vport *vport,
2031 lpfc_rcv_padisc(vport, ndlp, cmdiocb);
2036 lpfc_rcv_prlo_mapped_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
2039 struct lpfc_hba *phba = vport->phba;
2043 lpfc_sli_abort_iocb(vport, &phba->sli.ring[phba->sli.fcp_ring],
2047 lpfc_rcv_logo(vport, ndlp, cmdiocb, ELS_CMD_PRLO);
2052 lpfc_device_recov_mapped_node(struct lpfc_vport *vport,
2057 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
2060 lpfc_nlp_set_state(vport, ndlp, NLP_STE_NPR_NODE);
2064 lpfc_disc_set_adisc(vport, ndlp);
2069 lpfc_rcv_plogi_npr_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
2072 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
2078 if (lpfc_rcv_plogi(vport, ndlp, cmdiocb)) {
2079 lpfc_cancel_retry_delay_tmo(vport, ndlp);
2087 lpfc_nlp_set_state(vport, ndlp, NLP_STE_PLOGI_ISSUE);
2088 lpfc_issue_els_plogi(vport, ndlp->nlp_DID, 0);
2095 lpfc_rcv_prli_npr_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
2098 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
2105 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, cmdiocb, ndlp, NULL);
2113 lpfc_nlp_set_state(vport, ndlp, NLP_STE_ADISC_ISSUE);
2114 lpfc_issue_els_adisc(vport, ndlp, 0);
2117 lpfc_nlp_set_state(vport, ndlp, NLP_STE_PLOGI_ISSUE);
2118 lpfc_issue_els_plogi(vport, ndlp->nlp_DID, 0);
2125 lpfc_rcv_logo_npr_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
2130 lpfc_rcv_logo(vport, ndlp, cmdiocb, ELS_CMD_LOGO);
2135 lpfc_rcv_padisc_npr_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
2140 lpfc_rcv_padisc(vport, ndlp, cmdiocb);
2151 lpfc_nlp_set_state(vport, ndlp, NLP_STE_ADISC_ISSUE);
2152 lpfc_issue_els_adisc(vport, ndlp, 0);
2155 lpfc_nlp_set_state(vport, ndlp, NLP_STE_PLOGI_ISSUE);
2156 lpfc_issue_els_plogi(vport, ndlp->nlp_DID, 0);
2163 lpfc_rcv_prlo_npr_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
2166 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
2173 lpfc_els_rsp_acc(vport, ELS_CMD_ACC, cmdiocb, ndlp, NULL);
2192 lpfc_cmpl_plogi_npr_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
2197 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
2213 lpfc_cmpl_prli_npr_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
2224 lpfc_drop_node(vport, ndlp);
2231 lpfc_cmpl_logo_npr_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
2234 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
2239 vport->fc_flag &= ~(FC_FABRIC | FC_PUBLIC_LOOP);
2242 lpfc_unreg_rpi(vport, ndlp);
2247 lpfc_cmpl_adisc_npr_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
2258 lpfc_drop_node(vport, ndlp);
2265 lpfc_cmpl_reglogin_npr_node(struct lpfc_vport *vport,
2274 if (vport->phba->sli_rev < LPFC_SLI_REV4)
2279 lpfc_drop_node(vport, ndlp);
2287 lpfc_device_rm_npr_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
2290 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
2298 lpfc_drop_node(vport, ndlp);
2303 lpfc_device_recov_npr_node(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
2306 struct Scsi_Host *shost = lpfc_shost_from_vport(vport);
2311 if (vport->fc_flag & FC_RSCN_DEFERRED)
2314 lpfc_cancel_retry_delay_tmo(vport, ndlp);
2509 lpfc_disc_state_machine(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
2523 lpfc_printf_vlog(vport, KERN_INFO, LOG_DISCOVERY,
2528 lpfc_debugfs_disc_trc(vport, LPFC_DISC_TRC_DSM,
2533 rc = (func) (vport, ndlp, arg, evt);
2537 lpfc_printf_vlog(vport, KERN_INFO, LOG_DISCOVERY,
2541 lpfc_debugfs_disc_trc(vport, LPFC_DISC_TRC_DSM,
2547 lpfc_printf_vlog(vport, KERN_INFO, LOG_DISCOVERY,
2550 lpfc_debugfs_disc_trc(vport, LPFC_DISC_TRC_DSM,