lpfc_cmpl_els_fdisc(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ NAME ✨

lpfc_cmpl_els_fdisc(9) β€” Kernel API Manual bestie, this is the Completion function for fdisc iocb command πŸ’…

πŸ¦‹ SYNOPSIS πŸ¦‹

okay so the signature is literally:

void lpfc_cmpl_els_fdisc (struct lpfc_hba *phba , struct lpfc_iocbq
       *cmdiocb , struct lpfc_iocbq *rspiocb );

πŸŽ€ ARGUMENTS πŸŽ€

  • phba β€” pointer to lpfc hba data structure. the hba info, slay ✨
  • cmdiocb β€” pointer to lpfc command iocb data structure. command iocb bestie 🫢
  • rspiocb β€” pointer to lpfc response iocb data structure. response iocb bestie 🌸

πŸ’… DESCRIPTION πŸ’…

okay so picture this: this routine is literally the completion callback function to a Fabric Discover (FDISC) ELS command. slay Since all the FDISC ELS commands are issued single threaded, each FDISC completion callback function will reset the discovery timer for all vports such that the timers will not get unnecessary timeout. no unnecessary timeout drama, periodt

Then it checks the FDISC IOCB status. If error detected, the vport will be set to FC_VPORT_FAILED state. Otherwise, the vport will set to FC_VPORT_ACTIVE state. vibe check: failed or active, there is no in-between

After that, it checks whether the DID assigned to the vport has been changed with the completion of the FDISC command. If so, both RPI (Remote Port Index) and VPI (Virtual Port Index) are unregistered from the HBA, and then the lpfc_register_new_vport routine is invoked to register new vport with the HBA. cleanup then re-register, iconic

Otherwise, the lpfc_do_scr_ns_plogi routine is invoked to issue a PLOGI to the Name Server for State Change Request (SCR). name server gets the PLOGI, iykyk

🌈 SEE ALSO 🌈

the related-functions group chat is lowkey enormous πŸ‘‘ β€” Kernel file ./drivers/scsi/lpfc/lpfc_els.c, plus 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_initial_fdisc(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_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).

mwah πŸ’‹ that’s the page β€” source/version ./drivers/scsi/lpfc, dated October 2026, and yes bestie, the manual is lpfc_cmpl_els_fdisc(9) all the way down. 🫢

πŸ“¦ where this page comes from