lpfc_els_ret...elay_handler(9)
π lpfc_els_retry_delay_handler β Kernel API Manual π
ok so real talk, this is a page from the Kernel API Manual (that's the manual name, bestie, it's not a section you read, it's the whole vibe of the doc set β¨). And the header up top is lowkey too long for its own good, so it gets truncated and shows up looking like lpfc_els_ret...elay_handler(9) β the ... is not a mystery, it's just the page name being a whole paragraph π. The actual function is lpfc_els_retry_delay_handler, and we're about to get into it.
πΈ NAME
lpfc_els_retry_delay_handler β the work thread handler for the ndlp delayed function. that's the whole name tag, periodt π
β¨ SYNOPSIS
void lpfc_els_retry_delay_handler (struct lpfc_nodelist *ndlp );
one function, one pointer, zero drama. love that for us π«Ά
π ARGUMENTS
ndlpβ a pointer to a node-list data structure. that's it, that's the arg, she takes exactly one (1) pointer to astruct lpfc_nodelistand minds her business β¨
π¦ DESCRIPTION
okay so here's the tea β β this routine is the worker-thread handler for processing the ndlp's delayed event(s), and those events were posted by the lpfc_els_retry_delay routine (she's the one who queued them up, this function is the one who actually shows up to do the work π
).
what does it do though? literally just two things, no cap:
- it retrieves the last ELS command from the associated
ndlpπ - it invokes the proper ELS function according to that delayed ELS command, so the command gets retried π₯
so it's the retry-delivery girlie. the delayed work said "bestie handle this later," and this is the later. iconic behavior, honestly π
π SEE ALSO
first up, this lives in the kernel file ./drivers/scsi/lpfc/lpfc_els.c β go say hi πΈ
and now, the extended friend group. everybody in the lpfc_els cinematic universe, in order, no one left behind π«Ά:
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_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)
like, that's the whole group chat and yes every single one got an invite πβ¨
and that's the page!! shoutout to the source tree at ./drivers/scsi/lpfc β that's the version/path stamp, and the date on the whole thing is October 2026 π
. so she's from the future, she's in drivers/scsi/lpfc, and she's only here to retry your delayed ELS command. go off, queen π
ππ¦
π¦ 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