lpfc_plogi_confirm_nport(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… lpfc_plogi_confirm_nport β€” Kernel API Manual, bestie edition ✨

πŸ’– NAME πŸ’–

lpfc_plogi_confirm_nport β€” confirm plogi wwpn matches stored ndlp 🫢

🌸 SYNOPSIS 🌸

okay so here’s the sacred signature, untouched, because code is literally code:

struct lpfc_nodelist * lpfc_plogi_confirm_nport (struct lpfc_hba *phba ,
uint32_t *prsp , struct lpfc_nodelist *ndlp );

πŸŽ€ ARGUMENTS πŸŽ€

  • phba β€” pointer to lpfc hba data structure. πŸ’–
  • prsp β€” pointer to response IOCB payload. ✨
  • ndlp β€” pointer to a node-list data structure. πŸ¦‹

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so here’s the vibe: this routine checks and indicates whether the WWPN of an N_Port, retrieved from a PLOGI, matches the WWPN that is stored in the ndlp for that N_POrt. πŸ‘€

The following cases are considered N_Port confirmed:

  • The N_Port is a Fabric ndlp. 🌸
  • The ndlp is on the vport list and matches the WWPN of the N_Port logged into. πŸ’…
  • The ndlp is not on the vport list, but it does not have a WWPN assigned either. πŸŽ€

If the WWPN is confirmed, the pointer to the ndlp will be returned. If the WWPN is not confirmed:

  • If there is a node on the vport list other than the ndlp with the same WWPN of the N_Port PLOGI logged into, lpfc_unreg_rpi will be invoked on that node to release the RPI associated with the node. πŸ”₯
  • If there is no node found on the vport list with the same WWPN of the N_Port PLOGI logged into, a new node shall be allocated (or activated). ⭐

In either case, the parameters of the ndlp shall be copied to the new_ndlp, the ndlp shall be released, and the new_ndlp shall be put onto the vport node list and its pointer returned as the confirmed node. periodt. πŸ‘‘

🚨 important plot twist, bestie: before the ndlp got "released", the keepDID from the not-matching or inactive new_ndlp on the vport node list is assigned to the nlp_DID of the ndlp. Why? Because the release of ndlp is actually to put it into an inactive state on the vport node list, and the vport node list management algorithm does not allow two nodes with the same DID. no cap. πŸ’€

Return code: pointer to the PLOGI N_Port ndlp. πŸ’–

🌈 SEE ALSO 🌈

Kernel file ./drivers/scsi/lpfc/lpfc_els.c β€” yes, that’s the file, iykyk. The full squad, no skipping:

xoxo, from ./drivers/scsi/lpfc in October 2026 β€” this has been lpfc_plogi_confirm_nport(9) signing off πŸ’…πŸ«Άβœ¨

πŸ“¦ where this page comes from