lpfc_els_rcv_lcb(9)
π lpfc_els_rcv_lcb β it's a Kernel API Manual situation, bestie
Okay so this little icon is a kernel API function called lpfc_els_rcv_lcb(9), and it lives in the Kernel API Manual, which is like the group chat archive for kernel functions. Let's get into it π«Ά
β¨ NAME β¨
lpfc_els_rcv_lcb β lowkey the function that handles an unsolicited LCB. That's the whole vibe.
πΈ SYNOPSIS πΈ
int lpfc_els_rcv_lcb (struct lpfc_vport *vport , struct lpfc_iocbq
*cmdiocb , struct lpfc_nodelist *ndlp );
Note the return type: it's an int. Everyone say thank you to the return type π
π ARGUMENTS π
Three besties walk into a function:
vportβ a pointer to a host virtual N_Port data structure. Basically the VIP pass πͺͺcmdiocbβ a pointer to thelpfccommand iocb data structure. The main-character command object fr fr.ndlpβ a pointer to a node-list data structure. The whole node situation, gorgeous.
π¦ DESCRIPTION π¦
So this routine's entire personality is processing an unsolicited LCB (LINK CABLE BEACON) IOCB. Literally what it says on the tin, no cap.
Here's the little routine's journey:
- First, the payload of the unsolicited LCB gets checked. Yes, it's doing a vibe check on the payload π
- Then, based on the Subcommand, the beacon will either turn on or turn off. That's it. That's the plot. Iconic.
And for the return codes, slay:
- Return code 0 β Sent the acc response β
- Return code 1 β Sent the reject response π
π SEE ALSO π
Okay bestie, buckle up, because this cross-reference list is long and it ate. Periodt. Every single one of these, preserved exactly:
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_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 the kernel file it all hangs out in: ./drivers/scsi/lpfc/lpfc_els.c π§
Ngl, that's a lot of cross-references for one beacon function, but we respect the hustle π
Okay that's the whole page, bestie β mwah π This adorable little doc came from the source path ./drivers/scsi/lpfc and it's dated October 2026, so mark your calendars fr fr. Byeeeee πβ¨π
π¦ 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