lpfc_initial_fdisc(9)
π lpfc_initial_fdisc β from the Kernel API Manual β¨
okay so picture this: you're a virtual port (a vport, bestie) and you've literally never done fabric discovery before. not once. brand new. and this function? this is the glow-up. π¦ lpfc_initial_fdisc is the routine that kicks off your very first Fabric Discover (FDISC) β your debut into the fabric, your main character entrance, your "hi bestie, i'm here" moment. periodt.
β¨ SYNOPSIS β¨
int lpfc_initial_fdisc (struct lpfc_vport *vport );
π ARGUMENTS π
- vport β pointer to a host virtual N_Port data structure. yeah. it's the vport. it's the one getting the whole FDISC treatment. she's the moment. π
πΈ DESCRIPTION πΈ
so this routine issues an initial Fabric Discover (FDISC) for the vport you handed it. that's the whole vibe. but the way that it does it is lowkey a little three-act structure, so let's break it down:
- first thing, it goes searching through the vport's ndlp list for an ndlp with
Fabric_DID(0xfffffe). like, "do i already have my fabric buddy in here somewhere, orβ¦" π - if no such ndlp is found β no fabric buddy, tragic β it just creates one and drops it into the vport's ndlp list. making friends out of thin air, iconic honestly. π
- if an inactive ndlp is found on the list? oh, she's not new, she's just resting. it gets enabled and made active. no new allocation needed, we're reviving the existing one. slay. β¨
then, once the whole ndlp situation is sorted, lpfc_issue_els_fdisc is invoked with the vport and the ndlp to actually perform the FDISC for the vport. that's the fireworks moment. π
and what do you get back? two possible return codes, no in-between:
0β failed to issue initial fdisc for vport. π rough. not the vibe. we don't talk about it.1β successfully issued initial fdisc for vport. π₯ ate. no crumbs. the fabric now knows about you.
ngl the0vs1thing is a real vibe check β don't assume0means "all good," because in this house0is the failure. read your return value carefully bestie, i'm begging. π«Ά
π SEE ALSO π
this is the entire friendship group, and honestly they're all in the same file, so it's giving family reunion:
lpfc_els_chk_latt(9)lpfc_prep_els_iocb(9)lpfc_issue_fabric_reglogin(9)lpfc_issue_reg_vfi(9)lpfc_issue_unreg_vfi(9)lpfc_check_clean_addr_bit(9)lpfc_cmpl_els_flogi_fabric(9)lpfc_cmpl_els_flogi_nport(9)lpfc_cmpl_els_flogi(9)lpfc_cmpl_els_link_down(9)lpfc_issue_els_flogi(9)lpfc_els_abort_flogi(9)lpfc_initial_flogi(9)lpfc_more_plogi(9)lpfc_plogi_confirm_nport(9)lpfc_end_rscn(9)lpfc_cmpl_els_rrq(9)lpfc_check_encryption(9)lpfc_cmpl_els_plogi(9)lpfc_issue_els_plogi(9)lpfc_cmpl_els_prli(9)lpfc_issue_els_prli(9)lpfc_rscn_disc(9)lpfc_adisc_done(9)lpfc_more_adisc(9)lpfc_cmpl_els_adisc(9)lpfc_issue_els_adisc(9)lpfc_cmpl_els_logo(9)lpfc_issue_els_logo(9)lpfc_cmpl_els_cmd(9)lpfc_reg_fab_ctrl_node(9)lpfc_cmpl_els_disc_cmd(9)lpfc_issue_els_scr(9)lpfc_issue_els_rscn(9)lpfc_issue_els_farpr(9)lpfc_issue_els_rdf(9)lpfc_least_capable_settings(9)lpfc_cmpl_els_edc(9)lpfc_cancel_retry_delay_tmo(9)lpfc_els_retry_delay(9)lpfc_els_retry_delay_handler(9)lpfc_link_reset(9)lpfc_els_retry(9)lpfc_els_free_data(9)lpfc_els_free_bpl(9)lpfc_els_free_iocb(9)lpfc_cmpl_els_logo_acc(9)lpfc_mbx_cmpl_dflt_rpi(9)lpfc_cmpl_els_rsp(9)lpfc_els_rsp_acc(9)lpfc_els_rsp_reject(9)lpfc_els_rsp_adisc_acc(9)lpfc_els_rsp_prli_acc(9)lpfc_els_rsp_rnid_acc(9)lpfc_els_clear_rrq(9)lpfc_els_rsp_echo_acc(9)lpfc_els_disc_adisc(9)lpfc_els_disc_plogi(9)lpfc_els_rcv_lcb(9)lpfc_els_flush_rscn(9)lpfc_rscn_payload_check(9)lpfc_rscn_recovery_check(9)lpfc_send_rscn_event(9)lpfc_els_rcv_rscn(9)lpfc_els_handle_rscn(9)lpfc_els_rcv_flogi(9)lpfc_els_rcv_rnid(9)lpfc_els_rcv_echo(9)lpfc_els_rcv_lirr(9)lpfc_els_rcv_rrq(9)lpfc_els_rsp_rls_acc(9)lpfc_els_rcv_rls(9)lpfc_els_rcv_rtv(9)lpfc_send_rrq(9)lpfc_els_rsp_rpl_acc(9)lpfc_els_rcv_rpl(9)lpfc_els_rcv_farp(9)lpfc_els_rcv_farpr(9)lpfc_els_rcv_fan(9)lpfc_els_rcv_edc(9)lpfc_els_timeout(9)lpfc_els_timeout_handler(9)lpfc_els_flush_cmd(9)lpfc_els_flush_all_cmd(9)lpfc_send_els_failure_event(9)lpfc_send_els_event(9)lpfc_display_fpin_wwpn(9)lpfc_els_rcv_fpin_li(9)lpfc_els_rcv_fpin_del(9)lpfc_els_rcv_fpin_peer_cgn(9)lpfc_els_rcv_fpin_cgn(9)lpfc_els_unsol_buffer(9)lpfc_els_unsol_event(9)lpfc_do_scr_ns_plogi(9)lpfc_cmpl_reg_new_vport(9)lpfc_register_new_vport(9)lpfc_cancel_all_vport_retry_delay_timer(9)lpfc_retry_pport_discovery(9)lpfc_fabric_login_reqd(9)lpfc_cmpl_els_fdisc(9)lpfc_issue_els_fdisc(9)lpfc_cmpl_els_npiv_logo(9)lpfc_issue_els_npiv_logo(9)lpfc_fabric_block_timeout(9)lpfc_resume_fabric_iocbs(9)lpfc_unblock_fabric_iocbs(9)lpfc_block_fabric_iocbs(9)lpfc_cmpl_fabric_iocb(9)lpfc_issue_fabric_iocb(9)lpfc_fabric_abort_vport(9)lpfc_fabric_abort_nport(9)lpfc_fabric_abort_hba(9)lpfc_sli4_vport_delete_els_xri_aborted(9)lpfc_sli4_els_xri_aborted(9)
and yes, all of these live in the kernel file ./drivers/scsi/lpfc/lpfc_els.c β one file, one giant friend group, no cap. π
kay that's the whole page bestie!! π this lil gem comes to you from the good people at ./drivers/scsi/lpfc, dated October 2026, and it's filed under lpfc_initial_fdisc(9) β go forth and discover some fabric, you absolute icon πβ¨π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms