lpfc_els_rcv_rtv(9)
π 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 tolpfccommand 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 thendlpreference count will be incremented by 1 for holding thendlp, and the reference tondlpwill be stored into thendlpfield 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 return0) π 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
- 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