lpfc_els_rcv_flogi(9)
π lpfc_els_rcv_flogi β the group chat manual page π
okay so bestie, this page is lpfc_els_rcv_flogi(9) from the Kernel API Manual, and it's genuinely kind of iconic once you see what it does. buckle up π
β¨ NAME β¨
lpfc_els_rcv_flogi β process an unsolicited flogi iocb π¦
πΈ SYNOPSIS πΈ
int lpfc_els_rcv_flogi (struct lpfc_vport *vport , struct lpfc_iocbq
*cmdiocb , struct lpfc_nodelist *ndlp );
π ARGUMENTS π
vportβ pointer to a host virtual N_Port data structure. yes bestie, the vport, the main character πcmdiocbβ pointer tolpfccommand iocb data structure.ndlpβ pointer to a node-list data structure.
π₯ DESCRIPTION π₯
so this routine processes a Fabric Login (FLOGI) IOCB that shows up as an ELS unsolicited event. and like, an unsolicited FLOGI can be received in a point-to-point topology β that's totally valid, no notes π
but here's the thing: an unsolicited FLOGI should not be received in a loop mode. so any unsolicited FLOGI that shows up in loop mode shall be ignored. periodt, we're not entertaining it π
then lpfc_check_sparm gets invoked to check the parameters in the unsolicited FLOGI. and if parameters validation failed? the routine lpfc_els_rsp_reject shall be called with the reject reason code set to LSEXP_SPARM_OPTIONS to reject the FLOGI. bye π
otherwise (validation passed, we love that for us β¨), the Port WWN in the FLOGI shall be compared with the Port WWN of the vport to determine who will initiate PLOGI. and the higher lexicographical value party shall has higher priority (as the winning port) π and will initiate PLOGI and communicate Port_IDs (Addresses) for both nodes in PLOGI. the way this works is honestly so clever ngl.
the result of this will be marked in the vport fc_flag field with FC_PT2PT_PLOGI, and then the lpfc_els_rsp_acc routine is invoked to accept the FLOGI. slay π
Return codes, bestie:
0β successfully processed the unsolicited flogi π1β failed to process the unsolicited flogi π
π¦ SEE ALSO π¦
Kernel file ./drivers/scsi/lpfc/lpfc_els.c β and like, the whole extended friend group, fr fr:
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_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 page, bestie π«Ά this one lives in ./drivers/scsi/lpfc and it's dated October 2026 β so yeah, mark your calendar, screenshot it, send it to the group chat, iykyk πβ¨π
π¦ 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