lpfc_els_rcv_rtv(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… lpfc_els_rcv_rtv(9) β€” like, the Kernel API Manual page you've been waiting for

okay so bestie, buckle up. this is lpfc_els_rcv_rtv(9) from the Kernel API Manual, and it's lowkey about handling one (1) unsolicited RTV iocb. yes that's the whole vibe. she's niche, she's specific, she's iconic for it. ✨


🌸 NAME 🌸

lpfc_els_rcv_rtv β€” the routine that processes an unsolicited rtv iocb πŸŽ€


✨ SYNOPSIS ✨

int lpfc_els_rcv_rtv (struct lpfc_vport *vport , struct lpfc_iocbq
*cmdiocb , struct lpfc_nodelist *ndlp );

like, that's the whole signature, no cap. three pointers in, an int out. 🫢


πŸ¦‹ ARGUMENTS πŸ¦‹

  • vport β€” pointer to a host virtual N_Port data structure. she's the port, she's the main character.
  • cmdiocb β€” pointer to lpfc command iocb data structure. this is the command block doing the work πŸ’…
  • ndlp β€” pointer to a node-list data structure. the node list bestie in question.

πŸ’– DESCRIPTION πŸ’–

so. this routine processes a Read Timeout Value (RTV) IOCB that showed up as an ELS unsolicited event. first thing it does β€” and honestly, respect β€” is check the remote port state. πŸ‘‘

if the remote port is not in NLP_STE_UNMAPPED_NODE state or NLP_STE_MAPPED_NODE state, she invokes the lpfc_els_rsl_reject routine to send the reject response. like, read the room, wrong state, reject, bye. πŸ™ˆ

otherwise β€” and this is the slay part β€” it sends the Accept(ACC) response to a Read Timeout Value (RTV) unsolicited IOCB event. ACC sent, situation handled, we move. 🌈

⚠️ note that the ndlp reference count will be incremented by 1 for holding the ndlp, and the reference to ndlp will be stored into the ndlp field of the IOCB for the completion callback function to the RTV Accept Response ELS IOCB command. so yeah, refcount math is happening, don't forget it. 🧚

Return codes:

  • 0 β€” Successfully processed rtv iocb (currently always return 0) πŸ’€ like, always. it's giving "one return code and she's sticking to it."

πŸ”₯ SEE ALSO πŸ”₯

Kernel file ./drivers/scsi/lpfc/lpfc_els.c β€” and literally the entire extended friend group:

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_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_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, no one's getting left on read. πŸ“–πŸ’…


πŸŽ€ the cute sign-off πŸŽ€

this page lives in ./drivers/scsi/lpfc and it's dated October 2026 ⭐ β€” so yeah, she's from the future, she's ahead of her time, and this is lpfc_els_rcv_rtv(9) signing off. iykyk. πŸ¦‹πŸ’œ

πŸ“¦ where this page comes from