lpfc_els_disc_adisc(9)
π¦ lpfc_els_disc_adisc π¦
okay so bestie, this is a page from the Kernel API Manual, section 9, and the function is literally called lpfc_els_disc_adisc β say that five times fast, i dare you π. it lives in the kernel's lpfc driver world and it's doing fibre-channel discovery cleanup work, no cap.
β¨ NAME β¨
lpfc_els_disc_adisc β issue the remaining ADISC IOCBs to the NPR nodes of a vport π
πΈ SYNOPSIS πΈ
int lpfc_els_disc_adisc (struct lpfc_vport *vport );
π«Ά ARGUMENTS π«Ά
vportβ a pointer to a host virtual N_Port data structure. that's the whole argument list, she's low-maintenance π
π DESCRIPTION π
so what does she actually do? this routine issues Address Discover (ADISC) ELS commands to those N_Ports which are in node port recovery state and for which ADISC has not been issued for the vport. like, she's going down the list and poking everyone who still needs a vibe check β¨
every single time an ELS ADISC IOCB gets issued by invoking the lpfc_issue_els_adisc routine, the per-vport number of discover count (num_disc_nodes) shall be incremented. she's counting, bestie, she's always counting π₯
if num_disc_nodes reaches a pre-configured threshold (cfg_discovery_threads), the vport fc_flag will be marked with the FC_NLP_MORE bit, and the process of issuing the remaining ADISC IOCBs gets quit for later pick up. so she's not ghosting them, she's just coming back for them later, iykyk π
on the other hand, after walking through all the ndlps with the vport and there is none ADISC IOCB issued, the vport fc_flag shall be cleared with the FC_NLP_MORE bit β indicating there is no more ADISC that needs to be sent. she's done, the queue is empty, the group chat is on read π
Return code: the number of N_Ports with adisc issued. that's it, that's the return value π
π SEE ALSO π
the kernel file this lives in is literally ./drivers/scsi/lpfc/lpfc_els.c β and then there's the guest list, and it is long, so buckle up bestie, we're naming everyone π
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_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 that's the whole thing, bestie π β this little icon comes to you from the source tree at ./drivers/scsi/lpfc, stamped October 2026, and yes that's the version/date flex at the bottom, we're keeping it cute and keeping it accurate πβ¨π¦
π¦ 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