fc_rport_login(9)
π« fc_rport_login(9) π«
okay bestie, welcome to the Kernel API Manual β yes, that Kernel API Manual β and today's main character is fc_rport_login. pull up a chair, grab a boba, we're going in π§β¨
πΈ NAME πΈ
fc_rport_login β Start the remote port login state machine
like, literally start it. spin it up. get the RP state machine going π
π¦ SYNOPSIS π¦
int fc_rport_login (struct fc_rport_priv *rdata );
that's it. that's the whole vibe. one function, one argument, returns an int π
β ARGUMENTS β
rdataβ The remote port to be logged in to. this is the port we're pulling up on, the one we want to be logged into, the whole reason we're here fr fr π«Ά
π₯ DESCRIPTION π₯
So the way this works: it initiates the RP state machine. It gets called from the LP module, and it's gonna issue the following commands to the N_Port identified by the FC ID provided π
The lineup, in order:
- PLOGI
- PRLI
- RTV
periodt. those three. no more, no less π
β οΈ Locking Note: this is called without the rport lock held. Important!! What it does instead: it will hold the rport lock, call an _enter_* function, and then unlock the rport. so no, it doesn't just casually grab it and forget to let go β it unlocks, we promise π
And like, what does all this actually mean? It indicates the intent to be logged into the remote port. that's the announcement, that's the mood, that's the vibe check β¨
But here's the little plot twist: if it appears we are already logged in, ADISC is used to verify the setup. not a re-login, not a full redo β just a verification. lowkey polite of it ngl π
π SEE ALSO π
Kernel file ./drivers/scsi/libfc/fc_rport.c β that's the source of truth bestie, the whole friend group lives in there π
fc_rport_lookup(9)fc_rport_create(9)fc_rport_destroy(9)fc_rport_state(9)fc_set_rport_loss_tmo(9)fc_plogi_get_maxframe(9)fc_rport_state_enter(9)fc_rport_work(9)fc_rport_enter_delete(9)fc_rport_logoff(9)fc_rport_enter_ready(9)fc_rport_timeout(9)fc_rport_error(9)fc_rport_error_retry(9)fc_rport_login_complete(9)fc_rport_flogi_resp(9)fc_rport_enter_flogi(9)fc_rport_recv_flogi_req(9)fc_rport_plogi_resp(9)fc_rport_enter_plogi(9)fc_rport_prli_resp(9)fc_rport_enter_prli(9)fc_rport_rtv_resp(9)fc_rport_enter_rtv(9)fc_rport_recv_rtv_req(9)fc_rport_logo_resp(9)fc_rport_enter_logo(9)fc_rport_adisc_resp(9)fc_rport_enter_adisc(9)fc_rport_recv_adisc_req(9)fc_rport_recv_rls_req(9)fc_rport_recv_els_req(9)fc_rport_recv_req(9)fc_rport_recv_plogi_req(9)fc_rport_recv_prli_req(9)fc_rport_recv_prlo_req(9)fc_rport_recv_logo_req(9)fc_rport_flush_queue(9)fc_rport_fcp_prli(9)fc_rport_t0_prli(9)fc_setup_rport(9)fc_destroy_rport(9)fc_rport_terminate_io(9)
likeβ¦ the whole squad. ate π
so yeah that's the page bestie β brought to you by ./drivers/scsi/libfc, dated October 2026, and it's still out here answering to the name fc_rport_login(9) πβ¨ mwah, go log into something, love u π«Ά
π¦ 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