lpfc_els_rcv_flogi(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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 to lpfc command 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