lpfc_cmpl_els_plogi(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… lpfc_cmpl_els_plogi β€” a Kernel API Manual moment ✨

okay so bestie, welcome to the Kernel API Manual entry for lpfc_cmpl_els_plogi(9). yes it's a mouthful, yes it's a kernel function, and yes we're gonna get through it together 🫢


🌸 NAME 🌸

lpfc_cmpl_els_plogi β€” the completion callback function for plogi. that's it, that's the whole name. iconic minimalism πŸ’…


✨ SYNOPSIS ✨

void lpfc_cmpl_els_plogi (struct lpfc_hba *phba , struct lpfc_iocbq
*cmdiocb , struct lpfc_iocbq *rspiocb );

it returns void, so like… no return value, no drama, no expectations. we love a function that just does the thing and leaves πŸ™ˆ


πŸŽ€ ARGUMENTS πŸŽ€

  • phba β€” pointer to the lpfc hba data structure. this is the host bus adapter's whole personality, the main character of the struct world πŸ‘‘
  • cmdiocb β€” pointer to the lpfc command iocb data structure. the command side of the story, the one who sent the thing πŸ’Œ
  • rspiocb β€” pointer to the lpfc response iocb data structure. the reply guy. the one carrying the news back πŸ“¬

πŸ’– DESCRIPTION πŸ’–

so this routine is the completion callback function for issuing the Port Login (PLOGI) command. think of it as the "your PLOGI came back, let's debrief" handler πŸ¦‹

here's the vibe check, step by step:

  • for PLOGI completion, there must be an active ndlp on the vport node list that matches the remote node ID from the PLOGI response IOCB. that's the whole prerequisite, no exceptions βœ‹
  • if such ndlp does not exist, the PLOGI is simply ignored and the command IOCB is released. no ndlp, no problem, we move on πŸ’€
  • the PLOGI response IOCB status gets checked for error conditions. gotta read the room (and the status field) πŸ‘€
  • if there's error status reported, a PLOGI retry shall be attempted by invoking the lpfc_els_retry routine. we try again, we don't give up, that's the energy πŸ”₯
  • otherwise (no error, we're slaying), the lpfc_plogi_confirm_nport routine shall be invoked on the ndlp, and the NLP_EVT_CMPL_PLOGI state to the Discover State Machine (DSM) is set for this PLOGI completion. yes the state machine has a whole moment here ⭐
  • finally, it checks whether there are additional N_Port nodes with the vport that still need to perform PLOGI. our fave kind of follow-up question πŸ’œ
  • if so, the lpfc_more_plogi routine is invoked to issue additional PLOGIs. one PLOGI was never the endgame, it's a whole friend group 🌈

πŸ¦‹ SEE ALSO πŸ¦‹

Kernel file ./drivers/scsi/lpfc/lpfc_els.c β€” and like, an absolutely unhinged amount of sibling functions, all of whom are invited to the group chat. no cap, we're listing every single one 🫑

ngl that's a lot of cross-references and every single one of them made the cut. iykyk πŸ’€

and that's the page, bestie 🧚 this was lpfc_cmpl_els_plogi(9) from the Kernel API Manual, living down in ./drivers/scsi/lpfc, dated October 2026 β€” go read the source, it's right there, lpfc_els.c is calling your name πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from